From: Andrew Jones <drjones@redhat.com> Date: Mon, 16 Aug 2010 14:30:15 -0400 Subject: [virt] xen-kernel: improve backtrace support on ia64 Message-id: <1281969016-12745-2-git-send-email-drjones@redhat.com> Patchwork-id: 27639 O-Subject: [RHEL5.6 PATCH] xen-kernel: improve backtrace support on ia64 Bugzilla: 499553 RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com> RH-Acked-by: Christopher Lalancette <clalance@redhat.com> RH-Acked-by: Prarit Bhargava <prarit@redhat.com> Bugzilla: 499553 Description of problem: Xen-ia64 cannot generate backtraces properly at some points. Here are some causes: 1. At some points of procedure entry, unwind info cannot be generated properly. 2. BUG() doesn't show the stacktrace. Matches upstream, tested by someone in Fujitsu and myself. Brew: https://brewweb.devel.redhat.com/taskinfo?taskID=2671576 diff --git a/arch/ia64/xen/xenivt.S b/arch/ia64/xen/xenivt.S index ef9311c..a57c43f 100644 --- a/arch/ia64/xen/xenivt.S +++ b/arch/ia64/xen/xenivt.S @@ -2108,6 +2108,8 @@ END(dispatch_to_ia32_handler) #ifdef CONFIG_XEN .section .text,"ax" GLOBAL_ENTRY(xen_event_callback) + .prologue + .body mov r31=pr // prepare to save predicates ;; SAVE_MIN_WITH_COVER // uses r31; defines r2 and r3 @@ -2121,6 +2123,7 @@ GLOBAL_ENTRY(xen_event_callback) srlz.i // ensure everybody knows psr.ic is back on ;; SAVE_REST + PT_REGS_UNWIND_INFO(0) ;; 1: alloc r14=ar.pfs,0,0,1,0 // must be first in an insn group