Print the PREEMPT/SMP/DEBUG_PAGEALLOC settings during oopses. The modified output looks like this: Unable to handle kernel paging request at virtual address c4734068 printing eip: c04e58b6 *pde = 00012067 Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC CPU: 0 I find it fairly handy. It sometimes saves an email round-trip when diagnosing crashes. arch/i386/kernel/traps.c | 15 +++++++++++++++ 1 files changed, 15 insertions(+) diff -puN arch/i386/kernel/traps.c~print-build-options-on-oops arch/i386/kernel/traps.c --- 25/arch/i386/kernel/traps.c~print-build-options-on-oops 2003-08-20 17:30:53.000000000 -0700 +++ 25-akpm/arch/i386/kernel/traps.c 2003-08-20 17:30:53.000000000 -0700 @@ -288,12 +288,27 @@ spinlock_t die_lock = SPIN_LOCK_UNLOCKED void die(const char * str, struct pt_regs * regs, long err) { static int die_counter; + int nl = 0; console_verbose(); spin_lock_irq(&die_lock); bust_spinlocks(1); handle_BUG(regs); printk("%s: %04lx [#%d]\n", str, err & 0xffff, ++die_counter); +#ifdef CONFIG_PREEMPT + printk("PREEMPT "); + nl = 1; +#endif +#ifdef CONFIG_SMP + printk("SMP "); + nl = 1; +#endif +#ifdef CONFIG_DEBUG_PAGEALLOC + printk("DEBUG_PAGEALLOC"); + nl = 1; +#endif + if (nl) + printk("\n"); #ifdef CONFIG_KGDB /* This is about the only place we want to go to kgdb even if in * user mode. But we must go in via a trap so within kgdb we will _