[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] Re: [Xen-staging] [xen-unstable] Rendezvous selected cpus in softirq (stop_machine).



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 <alex.williamson@xxxxxx>
--

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 <xen/spinlock.h>
 #include <asm/smp.h>
 #include <asm/current.h>
+#include <xen/sched.h>
 #include <xen/softirq.h>
 #include <asm/processor.h>
 #include <xen/errno.h>
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 <xen/spinlock.h>
 extern spinlock_t cpu_add_remove_lock;
 /*
  * FIXME: need a better lock mechanism when real cpu hotplug is later



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.