Re: [PATCH] x86: push old stack address on irqstack for unwinder

From: Ingo Molnar
Date: Fri Jan 30 2009 - 19:40:02 EST



* H. Peter Anvin <hpa@xxxxxxxxx> wrote:

> H. Peter Anvin wrote:
>> Martin Hicks wrote:
>>> Hi,
>>>
>>> KDB was using this information. Could this be pushed towards 2.6.29
>>> please?
>>>
>>> This re-adds the old stack pointer to the top of the irqstack to help
>>> with unwinding. It was removed in commit
>>> d99015b1abbad743aa049b439c1e1dede6d0fa49
>>> as part of the save_args out-of-line work.
>>>
>>
>> This bothers me... why should we add even a single instruction to what
>> is arguably the single hottest path in the kernel to support an
>> out-of-tree debugger, especially if kgdb (which is in-tree) doesn't
>> need it?
>>
>> What does kgdb do differently (or is kgdb broken too)?
>>
>
> Thinking about it some more, I think this makes sense under
>
> #ifdef CONFIG_FRAME_POINTER
>
> ... since if we're not building with frame pointers, this is pretty
> pointless, and if we are, we're adding these all over the place anyway.
>
> Does this work for you? Let me know and I'll get it in if so.

Would be nice to have an #ifdef-less primitive for this - something like:

pushq_frame %rbp

and a matching:

popq_frame %rbp

for those cases that need it (this one doesnt as we dont pop out of the
stack).

Ingo
--
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/