[Crash-utility] crash version 4.0-3.15 is available

Isaku Yamahata yamahata at valinux.co.jp
Fri Dec 22 03:19:15 UTC 2006


On Thu, Dec 21, 2006 at 08:54:23AM -0500, Dave Anderson wrote:
> Isaku Yamahata wrote:
>     The current "xm dump-core" on ia64 loses some registers infomation
>     which is saved on xen register stack.
>     e.g. r33, ... aren't saved in domU xendump file.
>     Probably ia64 specific code would be necessarry for it.
>     This will be addressed as post-3.0.4 effort and the format will be changed.
> I'm not sure exactly what the ramifications are of an ia64 "xm dump-core"
> on a paravirtualized kernel.  It would seem to depend upon what, if anything,
> was "active" at the time.

The problems here is no ramification.
"xm dump-core" command on ia64 or domU panic create something
with x86-dump code, however no one has verfied the resulted file
deeply yet.
Anyway in the near feature, xendump format would be revised into elf format
and its implemenation would be rewritten.


> The ia64 would need to "jump through the hoop" of a call to
> unw_init_running() before it calls HYPERVISOR_shutdown()

Is the attached patch what you want?

-- 
yamahata
-------------- next part --------------
# HG changeset patch
# User yamahata at valinux.co.jp
# Date 1166756598 -32400
# Node ID 262eb4ba1212112345018d8b94c35cb2e4fc9764
# Parent  114c8cc94466089e95bc5f78347a388c55485690
As Dave requested, call unw_init_running() before SHUTDOWN_crash.
This makes crash command happy.
PATCHNAME: unw_init_running_before_shutdown_crash

Signed-off-by: Isaku Yamahata <yamahata at valinux.co.jp>

diff -r 114c8cc94466 -r 262eb4ba1212 linux-2.6-xen-sparse/arch/ia64/kernel/setup.c
--- a/linux-2.6-xen-sparse/arch/ia64/kernel/setup.c	Thu Dec 21 17:47:31 2006 +0900
+++ b/linux-2.6-xen-sparse/arch/ia64/kernel/setup.c	Fri Dec 22 12:03:18 2006 +0900
@@ -78,10 +78,17 @@ EXPORT_SYMBOL(__per_cpu_offset);
 #endif
 
 #ifdef CONFIG_XEN
+static void
+xen_panic_hypercall(struct unw_frame_info *info, void *arg)
+{
+	HYPERVISOR_shutdown(SHUTDOWN_crash);
+	/* we're never actually going to get here... */
+}
+
 static int
 xen_panic_event(struct notifier_block *this, unsigned long event, void *ptr)
 {
-	HYPERVISOR_shutdown(SHUTDOWN_crash);
+        unw_init_running(xen_panic_hypercall, NULL);
 	/* we're never actually going to get here... */
 	return NOTIFY_DONE;
 }


More information about the Crash-utility mailing list