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

[Xen-changelog] [xen-unstable] [IA64] Improve INIT call trace



# HG changeset patch
# User awilliam@xxxxxxxxxxxx
# Date 1169578898 25200
# Node ID b59b6173455d0034503bae93a5f98e887ba51873
# Parent  b194a9f3eba256b5ae56405b2b535e7798a389de
[IA64] Improve INIT call trace

Signed-off-by: Akio Takebe <takebe_akio@xxxxxxxxxxxxxx>
---
 xen/arch/ia64/linux-xen/mca.c |   18 +++++++++++++++++-
 1 files changed, 17 insertions(+), 1 deletion(-)

diff -r b194a9f3eba2 -r b59b6173455d xen/arch/ia64/linux-xen/mca.c
--- a/xen/arch/ia64/linux-xen/mca.c     Tue Jan 23 11:48:29 2007 -0700
+++ b/xen/arch/ia64/linux-xen/mca.c     Tue Jan 23 12:01:38 2007 -0700
@@ -84,6 +84,7 @@
 #include <xen/event.h>
 #include <xen/softirq.h>
 #include <asm/xenmca.h>
+#include <linux/shutdown.h>
 #endif
 
 #if defined(IA64_MCA_DEBUG_INFO)
@@ -685,6 +686,7 @@ static spinlock_t init_dump_lock = SPIN_
 static spinlock_t init_dump_lock = SPIN_LOCK_UNLOCKED;
 static spinlock_t show_stack_lock = SPIN_LOCK_UNLOCKED;
 static atomic_t num_stopped_cpus = ATOMIC_INIT(0);
+extern void show_stack (struct task_struct *, unsigned long *);
 
 #define CPU_FLUSH_RETRY_MAX 5
 static void
@@ -773,6 +775,8 @@ init_handler_platform (pal_min_state_are
        spin_unlock(&show_stack_lock);
 
        if (spin_trylock(&init_dump_lock)) {
+               struct domain *d;
+               struct vcpu *v;
 #ifdef CONFIG_SMP
                int other_cpus = num_online_cpus() - 1;
                int wait = 1000 * other_cpus;
@@ -782,7 +786,19 @@ init_handler_platform (pal_min_state_are
                if (other_cpus && wait < 0)
                        printk("timeout %d\n", atomic_read(&num_stopped_cpus));
 #endif
-               unw_init_running(try_crashdump, pt);
+               if (opt_noreboot) {
+                       /* this route is for dump routine */
+                       unw_init_running(try_crashdump, pt);
+               } else {
+                       for_each_domain(d) {
+                               for_each_vcpu(d, v) {
+                                       printk("Backtrace of current vcpu "
+                                              "(vcpu_id %d of domid %d)\n",
+                                              v->vcpu_id, d->domain_id);
+                                       show_stack(v, NULL);
+                               }
+                       }
+               }
        }
        unw_init_running(freeze_cpu_osinit, NULL);
 #else /* XEN */

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


 


Rackspace

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