[PATCH] x86: add sysctl for kstack_depth_to_print

Add sysctl for kstack_depth_to_print. This lets users change
the amount of raw stack data printed in dump_stack() without
having to reboot.

Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com>
Signed-off-by: Andi Kleen <ak@suse.de>
This commit is contained in:
Chuck Ebbert 2006-12-07 02:14:11 +01:00 committed by Andi Kleen
parent c7a3392e9e
commit 0741f4d207
5 changed files with 21 additions and 2 deletions

View File

@ -27,6 +27,7 @@ show up in /proc/sys/kernel:
- hotplug - hotplug
- java-appletviewer [ binfmt_java, obsolete ] - java-appletviewer [ binfmt_java, obsolete ]
- java-interpreter [ binfmt_java, obsolete ] - java-interpreter [ binfmt_java, obsolete ]
- kstack_depth_to_print [ X86 only ]
- l2cr [ PPC only ] - l2cr [ PPC only ]
- modprobe ==> Documentation/kmod.txt - modprobe ==> Documentation/kmod.txt
- msgmax - msgmax
@ -170,6 +171,13 @@ This flag controls the L2 cache of G3 processor boards. If
============================================================== ==============================================================
kstack_depth_to_print: (X86 only)
Controls the number of words to print when dumping the raw
kernel stack.
==============================================================
osrelease, ostype & version: osrelease, ostype & version:
# cat osrelease # cat osrelease

View File

@ -91,7 +91,7 @@ asmlinkage void alignment_check(void);
asmlinkage void spurious_interrupt_bug(void); asmlinkage void spurious_interrupt_bug(void);
asmlinkage void machine_check(void); asmlinkage void machine_check(void);
static int kstack_depth_to_print = 24; int kstack_depth_to_print = 24;
#ifdef CONFIG_STACK_UNWIND #ifdef CONFIG_STACK_UNWIND
static int call_trace = 1; static int call_trace = 1;
#else #else

View File

@ -108,7 +108,7 @@ static inline void preempt_conditional_cli(struct pt_regs *regs)
preempt_enable_no_resched(); preempt_enable_no_resched();
} }
static int kstack_depth_to_print = 12; int kstack_depth_to_print = 12;
#ifdef CONFIG_STACK_UNWIND #ifdef CONFIG_STACK_UNWIND
static int call_trace = 1; static int call_trace = 1;
#else #else

View File

@ -1,6 +1,8 @@
#ifndef _ASM_STACKTRACE_H #ifndef _ASM_STACKTRACE_H
#define _ASM_STACKTRACE_H 1 #define _ASM_STACKTRACE_H 1
extern int kstack_depth_to_print;
/* Generic stack tracer with callbacks */ /* Generic stack tracer with callbacks */
struct stacktrace_ops { struct stacktrace_ops {

View File

@ -54,6 +54,7 @@ extern int proc_nr_files(ctl_table *table, int write, struct file *filp,
#ifdef CONFIG_X86 #ifdef CONFIG_X86
#include <asm/nmi.h> #include <asm/nmi.h>
#include <asm/stacktrace.h>
#endif #endif
#if defined(CONFIG_SYSCTL) #if defined(CONFIG_SYSCTL)
@ -707,6 +708,14 @@ static ctl_table kern_table[] = {
.mode = 0444, .mode = 0444,
.proc_handler = &proc_dointvec, .proc_handler = &proc_dointvec,
}, },
{
.ctl_name = CTL_UNNUMBERED,
.procname = "kstack_depth_to_print",
.data = &kstack_depth_to_print,
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = &proc_dointvec,
},
#endif #endif
#if defined(CONFIG_MMU) #if defined(CONFIG_MMU)
{ {