From: Eric W. Biederman on 17 Feb 2010 23:10 Andrew Morton <akpm(a)linux-foundation.org> writes: > On Fri, 12 Feb 2010 17:43:39 -0600 Jason Wessel <jason.wessel(a)windriver.com> wrote: > >> >> printk(KERN_EMERG "Kernel panic - not syncing: %s\n",buf); >> >> #ifdef CONFIG_DEBUG_BUGVERBOSE >> >> dump_stack(); >> >> @@ -91,8 +94,6 @@ NORET_TYPE void panic(const char * fmt, ...) >> >> */ >> >> smp_send_stop(); >> >> >> >> - atomic_notifier_call_chain(&panic_notifier_list, 0, buf); >> >> - >> >> bust_spinlocks(0); >> >> >> >> if (!panic_blink) >> >> >> > >> > So the notifier call now happens before all the printks and the kexec >> > and kmsg_dump handling. What effect does this have upon the code which >> > implements kexec and kmsg_dump? >> > >> > >> >> I certainly don't want to break kexec or alter any behavior, does that >> mean kgdb / kdb should hook the kexec for notification? >> >> I think ideally it is a end user's preference as to if they want in via >> kexec or the kernel debugger. Calling the smp_send_stop() prior to the >> notifier was a death sentence for the kernel debugger. >> >> Perhaps I can move the notifier before smp_send_stop()? > > Well. My question can be simplified to "does this break existing code"? Yes. Removing the bust_spinlocks(1) and moving the panic notification up will measurably decrease the reliability of crash dump capture. I expect it will even result in dead_locks where we fail to print the panic message for people who are trying to debug via the console. Eric -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|
Pages: 1 Prev: Direct compact when a high-order allocation fails Next: NO_HZ migration of TCP ack timers |