Messages in this thread | | | Date | Fri, 20 Oct 2006 11:26:39 +0100 | From | "Jan Beulich" <> | Subject | Re: 2.6.19-rc2-mm1 unwinder issues ? |
| |
>>> Badari Pulavarty <pbadari@us.ibm.com> 19.10.06 00:36 >>> >Hi Andi, > >I am not getting stack traces properly on 2.6.19-rc2-mm1 again >(on my amd64 box). > >Wondering, if the unwinder code changed again ?? > >Thanks, >Badari
This patch:
>Annotate interrupt frame backlink in interrupt handlers > >Add correct CFI annotation to the backlink on top of the interrupt stack. > >Signed-off-by: Andi Kleen <ak@suse.de> > >--- > arch/x86_64/kernel/entry.S | 3 +++ > 1 files changed, 3 insertions(+) > >Index: linux/arch/x86_64/kernel/entry.S >=================================================================== >--- linux.orig/arch/x86_64/kernel/entry.S >+++ linux/arch/x86_64/kernel/entry.S >@@ -535,6 +535,8 @@ END(stub_rt_sigreturn) > 1: incl %gs:pda_irqcount > cmoveq %gs:pda_irqstackptr,%rsp > push %rbp # backlink for old unwinder >+ CFI_ADJUST_CFA_OFFSET 8 >+ CFI_REL_OFFSET rbp,0 > /* > * We entered an interrupt context - irqs are off: > */ >@@ -1174,6 +1176,7 @@ ENTRY(call_softirq) > incl %gs:pda_irqcount > cmove %gs:pda_irqstackptr,%rsp > push %rbp # backlink for old unwinder >+ CFI_ADJUST_CFA_OFFSET 8 > call __do_softirq > leaveq > CFI_DEF_CFA_REGISTER rsp
must be reverted for things to work again. Andi, what did you want to cure with it? Clearly, when rSP isn't the CFA register anymore, there must not (normally) be adjustments to the CFA offset. Similarly, when a register was saved already and it's not its spill location that changes, it must not be marked as being saved a second time.
Jan - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |