aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/traps.c
diff options
context:
space:
mode:
authorAndrew Cooper <andrew.cooper3@citrix.com>2013-10-04 12:58:20 +0200
committerJan Beulich <jbeulich@suse.com>2013-10-04 12:58:20 +0200
commit8e0da8c07f4f80e14314977a11f738bd74a5b62b (patch)
treed3452ba8506a6d9bfe12a412489215dbaa24c316 /xen/arch/x86/traps.c
parentfe06795e82922f8d8c8910da545ef1215cbb1b8c (diff)
downloadxen-8e0da8c07f4f80e14314977a11f738bd74a5b62b.tar.gz
xen-8e0da8c07f4f80e14314977a11f738bd74a5b62b.tar.bz2
xen-8e0da8c07f4f80e14314977a11f738bd74a5b62b.zip
x86: Improve information from domain_crash_synchronous
As it currently stands, the string "domain_crash_sync called from entry.S" is not helpful at identifying why the domain was crashed, and a debug build of Xen doesn't help the matter This patch improves the information printed, by pointing to where the crash decision was made. Specific improvements include: * Moving the ascii string "domain_crash_sync called from entry.S\n" away from some semi-hot code cache lines. * Moving the printk into C code (especially as this_cpu() is miserable to use in assembly code) * Undo the previous confusing situation of having the domain_crash_synchronous() as a macro in C code, yet a global symbol in assembly code. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Acked-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen/arch/x86/traps.c')
-rw-r--r--xen/arch/x86/traps.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index 771e59a132..6c7bd99788 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -3748,6 +3748,17 @@ unsigned long do_get_debugreg(int reg)
return -EINVAL;
}
+void asm_domain_crash_synchronous(unsigned long addr)
+{
+ if ( addr == 0 )
+ addr = this_cpu(last_extable_addr);
+
+ printk("domain_crash_sync called from entry.S: fault at %p ", _p(addr));
+ print_symbol("%s\n", addr);
+
+ __domain_crash_synchronous();
+}
+
/*
* Local variables:
* mode: C