From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ryan Harper Subject: [PATCH][BUG 347] sparse: fix x86_64 domU SMP cpu_present map Date: Tue, 1 Nov 2005 14:16:54 -0600 Message-ID: <20051101201654.GE10555@us.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org Changeset 7419 introduced a check for DOM0 before setting a bit in the cpu_present map. This prevents domU SMP kernels without HOTPLUG_CPU support from booting. Secondary cpus need to be present and online before init/main.c:do_basic_setup() calls init_workqueues() (which initializes per-cpu workqueues). Without this patch, non HOTPLUG_CPU enabled kernels hang when flushing cpu workqueues as the spinlock in the structure is never initialized (it has a default value of zero which means the lock has been acquired on x86). I've tested this patch on x86_64 SMP, x86_32 SMP, with and without HOTPLUG_CPU set. See bugzilla [1]#347 for more details. Please apply. 1. http://bugzilla.xensource.com/bugzilla/show_bug.cgi?id=347 -- Ryan Harper Software Engineer; Linux Technology Center IBM Corp., Austin, Tx (512) 838-9253 T/L: 678-9253 ryanh@us.ibm.com diffstat output: smpboot.c | 3 +-- 1 files changed, 1 insertion(+), 2 deletions(-) Signed-off-by: Ryan Harper --- diff -r ae2e13795c63 linux-2.6-xen-sparse/arch/xen/kernel/smpboot.c --- a/linux-2.6-xen-sparse/arch/xen/kernel/smpboot.c Tue Nov 1 18:13:06 2005 +++ b/linux-2.6-xen-sparse/arch/xen/kernel/smpboot.c Tue Nov 1 14:15:08 2005 @@ -236,8 +236,7 @@ make_page_readonly((void *)cpu_gdt_descr[cpu].address); cpu_set(cpu, cpu_possible_map); - if (xen_start_info->flags & SIF_INITDOMAIN) - cpu_set(cpu, cpu_present_map); + cpu_set(cpu, cpu_present_map); vcpu_prepare(cpu); }