Commit 0741f4d2 authored by Chuck Ebbert's avatar Chuck Ebbert Committed by Andi Kleen

[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: default avatarChuck Ebbert <76306.1226@compuserve.com>
Signed-off-by: default avatarAndi Kleen <ak@suse.de>
parent c7a3392e
...@@ -27,6 +27,7 @@ show up in /proc/sys/kernel: ...@@ -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 ...@@ -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
......
...@@ -91,7 +91,7 @@ asmlinkage void alignment_check(void); ...@@ -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
......
...@@ -108,7 +108,7 @@ static inline void preempt_conditional_cli(struct pt_regs *regs) ...@@ -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
......
#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 {
......
...@@ -54,6 +54,7 @@ extern int proc_nr_files(ctl_table *table, int write, struct file *filp, ...@@ -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[] = { ...@@ -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)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment