WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] [IA64] Stop all cpus at panic

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] [IA64] Stop all cpus at panic
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Thu, 13 Dec 2007 08:40:09 -0800
Delivery-date: Thu, 13 Dec 2007 08:40:15 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# 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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] [IA64] Stop all cpus at panic, Xen patchbot-unstable <=