[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [IA64] Stop all cpus at panic
# HG changeset patch # User Alex Williamson <alex.williamson@xxxxxx> # Date 1197393757 25200 # Node ID 124f7a7f5f84f69c1d6430ace1affd8f6cc00626 # Parent 35b2c54f59d5ab9c8fa414be86f2668da4149b6a [IA64] Stop all cpus at panic Current panic() of hypervisor doesn't stop all cpus. So domains can work after hypervisor panic (when using noreboot option). If dom0 continues to work after xen panic, the system may get into serious problems. This patch fixes the issue. I chose cpu_halt() to stop other cpus by smp_send_stop(). I think it should work fine for kexec. machine_halt() is only spinloop for leaving the panic calltrace. Signed-off-by: Akio Takebe <takebe_akio@xxxxxxxxxxxxxx> --- xen/arch/ia64/linux-xen/smp.c | 4 ---- xen/arch/ia64/xen/domain.c | 10 ++++++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff -r 35b2c54f59d5 -r 124f7a7f5f84 xen/arch/ia64/linux-xen/smp.c --- a/xen/arch/ia64/linux-xen/smp.c Tue Dec 11 10:14:11 2007 -0700 +++ b/xen/arch/ia64/linux-xen/smp.c Tue Dec 11 10:22:37 2007 -0700 @@ -122,9 +122,7 @@ stop_this_cpu (void) cpu_clear(smp_processor_id(), cpu_online_map); max_xtp(); local_irq_disable(); -#ifndef XEN cpu_halt(); -#endif } void @@ -132,9 +130,7 @@ cpu_die(void) { max_xtp(); local_irq_disable(); -#ifndef XEN cpu_halt(); -#endif /* Should never be here */ BUG(); for (;;); diff -r 35b2c54f59d5 -r 124f7a7f5f84 xen/arch/ia64/xen/domain.c --- a/xen/arch/ia64/xen/domain.c Tue Dec 11 10:14:11 2007 -0700 +++ b/xen/arch/ia64/xen/domain.c Tue Dec 11 10:22:37 2007 -0700 @@ -2207,10 +2207,12 @@ void machine_halt(void) void machine_halt(void) { console_start_sync(); - if (running_on_sim) - printk ("machine_halt called. spinning...\n"); - else - cpu_halt(); + +#ifdef CONFIG_SMP + smp_send_stop(); +#endif + + printk ("machine_halt called. spinning...\n"); while(1); } _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |