On 01/17/22 at 11:33am, Baoquan He wrote: > On 01/14/22 at 03:30pm, Guilherme G. Piccoli wrote: > ...... > > .../admin-guide/kernel-parameters.txt | 4 ++++ > > kernel/panic.c | 22 ++++++++++++++----- > > 2 files changed, 21 insertions(+), 5 deletions(-) > > > > diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt > > index a069d8fe2fee..0f5cbe141bfd 100644 > > --- a/Documentation/admin-guide/kernel-parameters.txt > > +++ b/Documentation/admin-guide/kernel-parameters.txt > > @@ -3727,6 +3727,10 @@ > > bit 4: print ftrace buffer > > bit 5: print all printk messages in buffer > > bit 6: print all CPUs backtrace (if available in the arch) > > + *Be aware* that this option may print a _lot_ of lines, > > + so there are risks of losing older messages in the log. > > + Use this option carefully, maybe worth to setup a > > + bigger log buffer with "log_buf_len" along with this. > > > > panic_on_taint= Bitmask for conditionally calling panic() in add_taint() > > Format: <hex>[,nousertaint] > > diff --git a/kernel/panic.c b/kernel/panic.c > > index 41ecf9ab824a..4ae712665f75 100644 > > --- a/kernel/panic.c > > +++ b/kernel/panic.c > > @@ -148,10 +148,13 @@ void nmi_panic(struct pt_regs *regs, const char *msg) > > } > > EXPORT_SYMBOL(nmi_panic); > > > > -static void panic_print_sys_info(void) > > +static void panic_print_sys_info(bool after_kmsg_dumpers) > > { > > - if (panic_print & PANIC_PRINT_ALL_PRINTK_MSG) > > - console_flush_on_panic(CONSOLE_REPLAY_ALL); > > + if (after_kmsg_dumpers) { > > + if (panic_print & PANIC_PRINT_ALL_PRINTK_MSG) > > + console_flush_on_panic(CONSOLE_REPLAY_ALL); > > + return; > > + } > > > > if (panic_print & PANIC_PRINT_ALL_CPU_BT) > > trigger_all_cpu_backtrace(); > > @@ -249,7 +252,7 @@ void panic(const char *fmt, ...) > > * show some extra information on kernel log if it was set... > > */ > > if (kexec_crash_loaded()) > > - panic_print_sys_info(); > > + panic_print_sys_info(false); > > Patch can'e be applied on the latest code of linus's tree, can you tell > which branch your code are based on? OK, this is based on linux-next, I will apply this patch on the linux-next/master and have a look. > > > > > /* > > * If we have crashed and we have a crash kernel loaded let it handle > > @@ -283,6 +286,15 @@ void panic(const char *fmt, ...) > > */ > > atomic_notifier_call_chain(&panic_notifier_list, 0, buf); > > > > + /* > > + * If kexec_crash_loaded() is true and we still reach this point, > > + * kernel would double print the information from panic_print; so > > + * let's guard against that possibility (it happens if kdump users > > + * also set crash_kexec_post_notifiers in the command-line). > > + */ > > + if (!kexec_crash_loaded()) > > + panic_print_sys_info(false); > > + > > kmsg_dump(KMSG_DUMP_PANIC); > > > > /* > > @@ -313,7 +325,7 @@ void panic(const char *fmt, ...) > > debug_locks_off(); > > console_flush_on_panic(CONSOLE_FLUSH_PENDING); > > > > - panic_print_sys_info(); > > + panic_print_sys_info(true); > > > > if (!panic_blink) > > panic_blink = no_blink; > > -- > > 2.34.1 > > > _______________________________________________ kexec mailing list kexec@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/kexec