aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/asm-x86/smp.h
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2008-02-11 15:59:49 +0000
committerKeir Fraser <keir.fraser@citrix.com>2008-02-11 15:59:49 +0000
commitf029add7ef8d5a4d474263a3a83f84fd7873aca1 (patch)
tree3fd5d21efa9ce2932889addce5777674e215d89b /xen/include/asm-x86/smp.h
parent6abc7e7e8c16fcf4deb4819d8d96591739cb8dbd (diff)
downloadxen-f029add7ef8d5a4d474263a3a83f84fd7873aca1.tar.gz
xen-f029add7ef8d5a4d474263a3a83f84fd7873aca1.tar.bz2
xen-f029add7ef8d5a4d474263a3a83f84fd7873aca1.zip
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. Signed-off-by: Kevin Tian <kevin.tian@intel.com> Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'xen/include/asm-x86/smp.h')
-rw-r--r--xen/include/asm-x86/smp.h3
1 files changed, 1 insertions, 2 deletions
diff --git a/xen/include/asm-x86/smp.h b/xen/include/asm-x86/smp.h
index 55b8cf7705..cf5159603d 100644
--- a/xen/include/asm-x86/smp.h
+++ b/xen/include/asm-x86/smp.h
@@ -51,12 +51,11 @@ extern u8 x86_cpu_to_apicid[];
/* State of each CPU. */
#define CPU_ONLINE 0x0002 /* CPU is up */
-#define CPU_DYING 0x0003 /* CPU is requested to die */
#define CPU_DEAD 0x0004 /* CPU is dead */
DECLARE_PER_CPU(int, cpu_state);
#ifdef CONFIG_HOTPLUG_CPU
-#define cpu_is_offline(cpu) unlikely(per_cpu(cpu_state,cpu) == CPU_DYING)
+#define cpu_is_offline(cpu) unlikely(!cpu_online(cpu))
extern int cpu_down(unsigned int cpu);
extern int cpu_up(unsigned int cpu);
extern void cpu_exit_clear(void);