Re: [PATCH 5/6] x86: Remove useless unwinder backlink from irq regssaving

From: Frederic Weisbecker
Date: Mon Jul 04 2011 - 09:10:25 EST


On Mon, Jul 04, 2011 at 11:17:42AM +0200, Ingo Molnar wrote:
>
> * Jan Beulich <JBeulich@xxxxxxxxxx> wrote:
>
> > >>> On 02.07.11 at 18:29, Frederic Weisbecker <fweisbec@xxxxxxxxx> wrote:
> > > The unwinder backlink in interrupt entry is very useless.
> > > It's actually not part of the stack frame chain and thus is
> > > never used.
> >
> > I very much doubt this - see dump_trace()'s comment in its IRQ-stack
> > related code portion (and the corresponding use of irq_stack_end[-1]).
>
> > > +++ b/arch/x86/kernel/entry_64.S
> > > @@ -327,7 +327,6 @@ ENDPROC(native_usergs_sysret64)
> > > jne 2f
> > > mov PER_CPU_VAR(irq_stack_ptr),%rsp
> > > EMPTY_FRAME 0
> > > - pushq_cfi %rbp /* backlink for unwinder */
> > > /*
> > > * We entered an interrupt context - irqs are off:
> > > */
>
> Frederic, please add it back with a much better comment in the .S
> showing where it's used and how. Perhaps even try to trigger the
> usage of this backlink and document the effect in the changelog.

Ok. Please also consider the point Jan made: save_regs() was created
a while ago to convert code from a macro to a function in order to
reduce the amount of duplicated code amongst interrupts.

I did not think about that. On the other hand, keeping that into a
function unoptimize a bit the interrupt entries I think (but then
at the cost of increasing a bit the i-cache footprint?)

Not sure what we should do. We can still revert/zap the whole
and focus on pure stacktrace fixes without underlying optimizations.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/