Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 101137
b: refs/heads/master
c: ad118c5
h: refs/heads/master
i:
  101135: 0f6cada
v: v3
  • Loading branch information
Vegard Nossum authored and Ingo Molnar committed Jun 27, 2008
1 parent 51042ba commit d53843c
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: a5a242dceed5d1c74fe46088762a9e4312c2d000
refs/heads/master: ad118c54a3587b2c69a769d0ba37d4d8dce4559d
30 changes: 29 additions & 1 deletion trunk/kernel/backtracetest.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@
* of the License.
*/

#include <linux/delay.h>
#include <linux/module.h>
#include <linux/sched.h>
#include <linux/delay.h>
#include <linux/stacktrace.h>

static struct timer_list backtrace_timer;

Expand All @@ -22,13 +23,40 @@ static void backtrace_test_timer(unsigned long data)
printk("The following trace is a kernel self test and not a bug!\n");
dump_stack();
}

#ifdef CONFIG_STACKTRACE
static void backtrace_test_saved(void)
{
struct stack_trace trace;
unsigned long entries[8];

printk("Testing a saved backtrace.\n");
printk("The following trace is a kernel self test and not a bug!\n");

trace.nr_entries = 0;
trace.max_entries = ARRAY_SIZE(entries);
trace.entries = entries;
trace.skip = 0;

save_stack_trace(&trace);
print_stack_trace(&trace, 0);
}
#else
static void backtrace_test_saved(void)
{
printk("Saved backtrace test skipped.\n");
}
#endif

static int backtrace_regression_test(void)
{
printk("====[ backtrace testing ]===========\n");
printk("Testing a backtrace from process context.\n");
printk("The following trace is a kernel self test and not a bug!\n");
dump_stack();

backtrace_test_saved();

init_timer(&backtrace_timer);
backtrace_timer.function = backtrace_test_timer;
mod_timer(&backtrace_timer, jiffies + 10);
Expand Down
3 changes: 3 additions & 0 deletions trunk/lib/Kconfig.debug
Original file line number Diff line number Diff line change
Expand Up @@ -562,6 +562,9 @@ config BACKTRACE_SELF_TEST
for distributions or general kernels, but only for kernel
developers working on architecture code.

Note that if you want to also test saved backtraces, you will
have to enable STACKTRACE as well.

Say N if you are unsure.

config LKDTM
Expand Down

0 comments on commit d53843c

Please sign in to comment.