On (04/18/19 09:45), Petr Mladek wrote: > The following functions are currently called from panic_print_sys_info(): > > + show_state(): > printk(KERN_INFO > " task PC stack pid father\n"); > + show_mem(): > printk("Mem-Info:\n"); > > + sysrq_timer_list_show() > no global header; but each section can be easily distinguished > because there are several static strings that explains the > content > > + debug_show_all_locks() > pr_warn("\nShowing all locks held in the system:\n"); > > + ftrace_dump(): > printk(KERN_TRACE "Dumping ftrace buffer:\n");
Oh, thanks. > The person that enabled the debugging option might know what it did > when it process the log the very same day. It might be less clear > for others reading the log. > > Also it still might be convenient to find the beginning easily. > Or it might help to orientate when several test runs > (over night test) are squashed in a single file. I see > such logs pretty often. OK, well since we are talking here about serial log, then we probably can just add printk("dump logbuf:\n"). It will appear before the FLUSH_ALL output. Or we can just tweak panic code a bit - anything panic_print_sys_info() prints can be "after" end of panic marker. Basically, just move pr_emerg("---[ end Kernel panic...") a bit. I don't quite understand why is it at the bottom - we don't always print end of panic maker, e.g. when panic_timeout != 0. Not sure if this was intentional. --- diff --git a/kernel/panic.c b/kernel/panic.c index 50eacfc9bc7e..1940a142c26e 100644 --- a/kernel/panic.c +++ b/kernel/panic.c @@ -282,6 +282,7 @@ void panic(const char *fmt, ...) */ debug_locks_off(); console_flush_on_panic(CONSOLE_FLUSH_PENDING); + pr_emerg("---[ end Kernel panic - not syncing: %s ]---\n", buf); panic_print_sys_info(); @@ -331,7 +332,6 @@ void panic(const char *fmt, ...) disabled_wait(caller); } #endif - pr_emerg("---[ end Kernel panic - not syncing: %s ]---\n", buf); /* Do not scroll important messages printed above */ suppress_printk = 1; --- -ss