# HG changeset patch
# User sos22@xxxxxxxxxxxxxxxxxxxx
# Node ID 860fa26845c242eac64dbef60bc2fec42cfacc8c
# Parent 806dfeb03d92a895815bf633def4f0306b8852a3
Change domain_crash to say where it was called from.
Signed-off-by: Steven Smith, sos22@xxxxxxxxx
diff -r 806dfeb03d92 -r 860fa26845c2 xen/arch/x86/x86_32/entry.S
--- a/xen/arch/x86/x86_32/entry.S Wed Jan 25 10:12:34 2006
+++ b/xen/arch/x86/x86_32/entry.S Wed Jan 25 16:14:19 2006
@@ -477,6 +477,14 @@
.long FLT24,domain_crash_synchronous , FLT25,domain_crash_synchronous
.previous
+domain_crash_synchronous_string:
+ .asciz "domain_crash_sync from entry.S %lx\n"
+
+domain_crash_synchronous:
+ pushl $domain_crash_synchronous_string
+ call printf
+ jmp __domain_crash_synchronous
+
ALIGN
process_guest_exception_and_events:
leal VCPU_trap_bounce(%ebx),%edx
diff -r 806dfeb03d92 -r 860fa26845c2 xen/common/domain.c
--- a/xen/common/domain.c Wed Jan 25 10:12:34 2006
+++ b/xen/common/domain.c Wed Jan 25 16:14:19 2006
@@ -139,7 +139,7 @@
}
-void domain_crash(struct domain *d)
+void __domain_crash(struct domain *d)
{
if ( d == current->domain )
{
@@ -157,9 +157,9 @@
}
-void domain_crash_synchronous(void)
-{
- domain_crash(current->domain);
+void __domain_crash_synchronous(void)
+{
+ __domain_crash(current->domain);
for ( ; ; )
do_softirq();
}
diff -r 806dfeb03d92 -r 860fa26845c2 xen/include/xen/sched.h
--- a/xen/include/xen/sched.h Wed Jan 25 10:12:34 2006
+++ b/xen/include/xen/sched.h Wed Jan 25 16:14:19 2006
@@ -238,13 +238,21 @@
* caller is the specified domain. The domain is not synchronously descheduled
* from any processor.
*/
-extern void domain_crash(struct domain *d);
+extern void __domain_crash(struct domain *d);
+#define domain_crash(d) do { \
+ printf("domain_crash called from %s:%d\n", __FILE__, __LINE__); \
+ __domain_crash(d); \
+} while (0)
/*
* Mark current domain as crashed and synchronously deschedule from the local
* processor. This function never returns.
*/
-extern void domain_crash_synchronous(void) __attribute__((noreturn));
+extern void __domain_crash_synchronous(void) __attribute__((noreturn));
+#define domain_crash_synchronous() do { \
+ printf("domain_crash_sync called from %s:%d\n", __FILE__, __LINE__); \
+ __domain_crash_synchronous(); \
+} while (0)
void new_thread(struct vcpu *d,
unsigned long start_pc,
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|