Patchwork [v2] powerpc: allow configuring max stack dump depth

login
register
mail settings
Submitter Johannes Berg
Date Nov. 19, 2008, 11:48 a.m.
Message ID <1227095318.26243.17.camel@johannes.berg>
Download mbox | patch
Permalink /patch/9555/
State Superseded, archived
Headers show

Comments

Johannes Berg - Nov. 19, 2008, 11:48 a.m.
On my screen, when something crashes, I only have space for maybe
16 functions of the stack trace before the information above it
scrolls off the screen. It's easy to hack the kernel to print out
only that much, but it's harder to remember to do it. This patch
introduces a config option for it so that I can keep the setting
in my config.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
---
Sure, here's an updated version. I used DEBUG_KERNEL since the
ADVANCED_CONFIGURATION help text implies it's for MM and can cause the
kernel to not boot, not something this config is related to.

Thanks for your comments.

 arch/powerpc/Kconfig.debug    |   10 ++++++++++
 arch/powerpc/kernel/process.c |    2 +-
 2 files changed, 11 insertions(+), 1 deletion(-)
Paul Mackerras - Nov. 19, 2008, 10:10 p.m.
Johannes Berg writes:

> On my screen, when something crashes, I only have space for maybe
> 16 functions of the stack trace before the information above it
> scrolls off the screen. It's easy to hack the kernel to print out
> only that much, but it's harder to remember to do it. This patch
> introduces a config option for it so that I can keep the setting
> in my config.
> 
> Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
> ---
> Sure, here's an updated version. I used DEBUG_KERNEL since the
> ADVANCED_CONFIGURATION help text implies it's for MM and can cause the
> kernel to not boot, not something this config is related to.

Um, with this I get a compile error when DEBUG_KERNEL=n:

  CC      arch/powerpc/kernel/process.o
/home/paulus/kernel/powerpc/arch/powerpc/kernel/process.c:1001: error: 'CONFIG_PRINT_STACK_DEPTH' undeclared here (not in a function)
make[2]: *** [arch/powerpc/kernel/process.o] Error 1

I think it needs to look like this:

+config PRINT_STACK_DEPTH
+	int "Stack depth to print" if DEBUG_KERNEL
+	default 64
+	help
+	  This option allows you to set the stack depth that the kernel
+	  prints in stack traces. This can be useful if your display is
+	  too small and stack traces cause important information to
+	  scroll off the screen.
+

Paul.
Johannes Berg - Nov. 20, 2008, 1:20 p.m.
On Thu, 2008-11-20 at 09:10 +1100, Paul Mackerras wrote:
> Johannes Berg writes:
> 
> > On my screen, when something crashes, I only have space for maybe
> > 16 functions of the stack trace before the information above it
> > scrolls off the screen. It's easy to hack the kernel to print out
> > only that much, but it's harder to remember to do it. This patch
> > introduces a config option for it so that I can keep the setting
> > in my config.
> > 
> > Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
> > ---
> > Sure, here's an updated version. I used DEBUG_KERNEL since the
> > ADVANCED_CONFIGURATION help text implies it's for MM and can cause the
> > kernel to not boot, not something this config is related to.
> 
> Um, with this I get a compile error when DEBUG_KERNEL=n:
> 
>   CC      arch/powerpc/kernel/process.o
> /home/paulus/kernel/powerpc/arch/powerpc/kernel/process.c:1001: error: 'CONFIG_PRINT_STACK_DEPTH' undeclared here (not in a function)
> make[2]: *** [arch/powerpc/kernel/process.o] Error 1

Ouch, clearly I haven't been paying attention, my mistake. Sorry about
that.

> I think it needs to look like this:
> 
> +config PRINT_STACK_DEPTH
> +	int "Stack depth to print" if DEBUG_KERNEL

Yes, that's better, thanks.

johannes

Patch

--- everything.orig/arch/powerpc/Kconfig.debug	2008-11-19 01:13:16.000000000 +0100
+++ everything/arch/powerpc/Kconfig.debug	2008-11-19 12:47:24.000000000 +0100
@@ -2,6 +2,16 @@  menu "Kernel hacking"
 
 source "lib/Kconfig.debug"
 
+config PRINT_STACK_DEPTH
+	int "Stack depth to print"
+	depends on DEBUG_KERNEL
+	default 64
+	help
+	  This option allows you to set the stack depth that the kernel
+	  prints in stack traces. This can be useful if your display is
+	  too small and stack traces cause important information to
+	  scroll off the screen.
+
 config DEBUG_STACKOVERFLOW
 	bool "Check for stack overflows"
 	depends on DEBUG_KERNEL
--- everything.orig/arch/powerpc/kernel/process.c	2008-11-19 01:13:16.000000000 +0100
+++ everything/arch/powerpc/kernel/process.c	2008-11-19 12:45:28.000000000 +0100
@@ -998,7 +998,7 @@  unsigned long get_wchan(struct task_stru
 	return 0;
 }
 
-static int kstack_depth_to_print = 64;
+static int kstack_depth_to_print = CONFIG_PRINT_STACK_DEPTH;
 
 void show_stack(struct task_struct *tsk, unsigned long *stack)
 {