diff options
author | Alex Nixon <alex.nixon@citrix.com> | 2008-08-22 06:52:15 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-08-25 05:25:14 -0400 |
commit | d68d82afd4c88e25763b23cd9cd4974573a3706f (patch) | |
tree | 42a3fb93a5cef70db7ad01fda1ed0dc68dbe6110 /arch/x86/xen/xen-ops.h | |
parent | 8227dce7dc2cfdcc28ee0eadfb482a7ee77fba03 (diff) |
xen: implement CPU hotplugging
Note the changes from 2.6.18-xen CPU hotplugging:
A vcpu_down request from the remote admin via Xenbus both hotunplugs the
CPU, and disables it by removing it from the cpu_present map, and removing
its entry in /sys.
A vcpu_up request from the remote admin only re-enables the CPU, and does
not immediately bring the CPU up. A udev event is emitted, which can be
caught by the user if he wishes to automatically re-up CPUs when available,
or implement a more complex policy.
Signed-off-by: Alex Nixon <alex.nixon@citrix.com>
Acked-by: Jeremy Fitzhardinge <jeremy@goop.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/xen/xen-ops.h')
-rw-r--r-- | arch/x86/xen/xen-ops.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h index 1e8bfdaa20d3..8dbd97fd7f18 100644 --- a/arch/x86/xen/xen-ops.h +++ b/arch/x86/xen/xen-ops.h | |||
@@ -34,6 +34,7 @@ void __init xen_build_dynamic_phys_to_machine(void); | |||
34 | 34 | ||
35 | void xen_init_irq_ops(void); | 35 | void xen_init_irq_ops(void); |
36 | void xen_setup_timer(int cpu); | 36 | void xen_setup_timer(int cpu); |
37 | void xen_teardown_timer(int cpu); | ||
37 | cycle_t xen_clocksource_read(void); | 38 | cycle_t xen_clocksource_read(void); |
38 | void xen_setup_cpu_clockevents(void); | 39 | void xen_setup_cpu_clockevents(void); |
39 | unsigned long xen_tsc_khz(void); | 40 | unsigned long xen_tsc_khz(void); |
@@ -50,11 +51,16 @@ void xen_mark_init_mm_pinned(void); | |||
50 | 51 | ||
51 | void __init xen_setup_vcpu_info_placement(void); | 52 | void __init xen_setup_vcpu_info_placement(void); |
52 | 53 | ||
54 | void xen_play_dead(void); | ||
55 | void xen_cpu_die(unsigned int cpu); | ||
56 | int xen_cpu_disable(void); | ||
57 | |||
53 | #ifdef CONFIG_SMP | 58 | #ifdef CONFIG_SMP |
54 | void xen_smp_init(void); | 59 | void xen_smp_init(void); |
55 | 60 | ||
56 | void __init xen_init_spinlocks(void); | 61 | void __init xen_init_spinlocks(void); |
57 | __cpuinit void xen_init_lock_cpu(int cpu); | 62 | __cpuinit void xen_init_lock_cpu(int cpu); |
63 | void xen_uninit_lock_cpu(int cpu); | ||
58 | 64 | ||
59 | extern cpumask_t xen_cpu_initialized_map; | 65 | extern cpumask_t xen_cpu_initialized_map; |
60 | #else | 66 | #else |