From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Williamson Subject: [PATCH] Re: [Xen-staging] [xen-unstable] Rendezvous selected cpus in softirq (stop_machine). Date: Wed, 13 Feb 2008 10:28:43 -0700 Message-ID: <1202923723.6816.59.camel@lappy> References: <200802111600.m1BG0SW2020616@latara.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <200802111600.m1BG0SW2020616@latara.uk.xensource.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Keir Fraser , "Tian, Kevin" Cc: xen-devel List-Id: xen-devel@lists.xenproject.org On Mon, 2008-02-11 at 16:00 +0000, Xen staging patchbot-unstable wrote: > # HG changeset patch > # User Keir Fraser > # Date 1202745589 0 > # Node ID 2a3111016f88c22cbf1f24ca31b7f9ecf7a71e15 > # Parent 7b0c0ab0566bbf241620db3fc94e791528a4503c > Rendezvous selected cpus in softirq (stop_machine). > > This is similar to stop_machine_run stub from Linux, to pull > selected cpus in rendezvous point and the do some batch work > under a safe environment. Current one usage is from S3 path, > where individual cpu is pulled down with related online > footprints being cleared. It's dangerous to have other cpus > checking clobbered data structure in the middle, such as > cpu_online_map, cpu_sibling_map, etc. This needs some minor fixes to build on ia64. We don't fully support CPU hotplug on Xen/ia64 yet, but we do define CONFIG_HOTPLUG_CPU for kexec. The patch below fixes the build issue and adds cpu_add_remove_lock with the expectation that we'll make use of it at some point. Thanks, Alex Signed-off-by: Alex Williamson -- diff -r 5e1df44d406e xen/arch/ia64/linux-xen/smpboot.c --- a/xen/arch/ia64/linux-xen/smpboot.c Wed Feb 13 14:03:58 2008 +0000 +++ b/xen/arch/ia64/linux-xen/smpboot.c Wed Feb 13 10:21:08 2008 -0700 @@ -67,6 +67,9 @@ #ifndef CONFIG_SMP cpumask_t cpu_online_map = CPU_MASK_CPU0; EXPORT_SYMBOL(cpu_online_map); +#endif +#ifdef CONFIG_HOTPLUG_CPU +spinlock_t cpu_add_remove_lock; #endif #endif diff -r 5e1df44d406e xen/common/stop_machine.c --- a/xen/common/stop_machine.c Wed Feb 13 14:03:58 2008 +0000 +++ b/xen/common/stop_machine.c Wed Feb 13 10:21:09 2008 -0700 @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include diff -r 5e1df44d406e xen/include/xen/smp.h --- a/xen/include/xen/smp.h Wed Feb 13 14:03:58 2008 +0000 +++ b/xen/include/xen/smp.h Wed Feb 13 10:21:09 2008 -0700 @@ -113,6 +113,7 @@ static inline int on_each_cpu( #define smp_processor_id() raw_smp_processor_id() #ifdef CONFIG_HOTPLUG_CPU +#include extern spinlock_t cpu_add_remove_lock; /* * FIXME: need a better lock mechanism when real cpu hotplug is later