* Arjan van de Ven <[EMAIL PROTECTED]> wrote: > During the work on the x86 32 and 64 bit backtrace code I found it > useful to have a simple test module to test a process and irq context > backtrace. Since the existing backtrace code was buggy, I figure it > might be useful to have such a test module in the kernel so that maybe > we can even detect such bugs earlier..
cool patch, applied! a few suggestions: a fundamental one: could you do a save_stack_trace() and check that both the process context and the irq context functions are present in that trace? If not then flag it as a regression and emit a real WARN_ON() warning. i.e. use save_stack_trace() to do a "silent" test - instead of emitting backtraces during bootup. (which are marked via 'this is not a bug' but which are visually active nevertheless.) the locking selftests use similar techniques to never emit real warnings, just a readable table of test results: | Locking API testsuite: ---------------------------------------------------------------------------- | spin |wlock |rlock |mutex | wsem | rsem | -------------------------------------------------------------------------- A-A deadlock: ok | ok | ok | ok | ok | ok | A-B-B-A deadlock: ok | ok | ok | ok | ok | ok | internally, while the test is running, lockdep is triggered for real but the debug output and the backtraces are supressed. and a few small details: > + 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"); the printks need a KERN_ attribute. > + dump_stack(); > + > + init_timer(&backtrace_timer); > + backtrace_timer.function = backtrace_test_timer; > + mod_timer(&backtrace_timer, jiffies + 10); > + > + msleep(10); > + printk("====[ end of backtrace testing ]====\n"); would be nice to have a testcase for the NMI watchdog and the softlockup watchdog as well: do they properly detect lockups on all CPUs? > +static void exitf(void) s/exitf/exit_backtrace_test > + This option provides a kernel module that can be used to test > + the kernel stack backtrace code. This option is not useful > + for distributions or general kernels, but only for kernel > + developers working on architecture code. s/but only/only Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/