Re: [tip:x86/cleanups] x86, dumpstack: Use frame pointer duringstack trace

From: Frederic Weisbecker
Date: Thu Mar 10 2011 - 18:02:33 EST


On Thu, Mar 10, 2011 at 10:26:07PM +0000, tip-bot for Namhyung Kim wrote:
> Commit-ID: 2f8058ae197236f9d5641850ce27f67d8f3e0b39
> Gitweb: http://git.kernel.org/tip/2f8058ae197236f9d5641850ce27f67d8f3e0b39
> Author: Namhyung Kim <namhyung@xxxxxxxxx>
> AuthorDate: Tue, 8 Mar 2011 20:44:22 +0900
> Committer: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> CommitDate: Thu, 10 Mar 2011 23:20:30 +0100
>
> x86, dumpstack: Use frame pointer during stack trace
>
> If CONFIG_FRAME_POINTER is set then use the frame pointer for the
> stack backtrace rather than scanning whole stack blindly.

We don't do it blindly, we actually check the reliability with the
frame pointer.

I'm not sure this patch is a good idea. stack dumps need to stay very
robust and not exclusively rely on the frame pointer to be correct.
At least walking blindly the stack provides a best effort dump as a last
resort.


>
> Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxx>
> Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
> LKML-Reference: <1299584662-24421-4-git-send-email-namhyung@xxxxxxxxx>
> Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> ---
> arch/x86/kernel/dumpstack.c | 4 ++++
> 1 files changed, 4 insertions(+), 0 deletions(-)
>
> diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c
> index 38b74a5e..56db27d 100644
> --- a/arch/x86/kernel/dumpstack.c
> +++ b/arch/x86/kernel/dumpstack.c
> @@ -170,7 +170,11 @@ static const struct stacktrace_ops print_trace_ops = {
> .warning_symbol = print_trace_warning_symbol,
> .stack = print_trace_stack,
> .address = print_trace_address,
> +#ifdef CONFIG_FRAME_POINTER
> + .walk_stack = walk_context_stack_bp,
> +#else
> .walk_stack = walk_context_stack,
> +#endif
> };
--
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/