On 2019-02-22, Petr Mladek <pmladek@xxxxxxxx> wrote: >> diff --git a/lib/nmi_backtrace.c b/lib/nmi_backtrace.c >> index 15ca78e1c7d4..77bf84987cda 100644 >> --- a/lib/nmi_backtrace.c >> +++ b/lib/nmi_backtrace.c >> @@ -75,12 +75,6 @@ void nmi_trigger_cpumask_backtrace(const cpumask_t *mask, >> touch_softlockup_watchdog(); >> } >> >> - /* >> - * Force flush any remote buffers that might be stuck in IRQ context >> - * and therefore could not run their irq_work. >> - */ >> - printk_safe_flush(); >> - >> clear_bit_unlock(0, &backtrace_flag); >> put_cpu(); >> } > > This reminds me that we need to add back the locking that was > removed in the commit 03fc7f9c99c1e7ae2925d45 ("printk/nmi: > Prevent deadlock when accessing the main log buffer in NMI"). No, that commit is needed. You cannot have NMIs waiting on other CPUs. > Otherwise, backtraces from different CPUs would get mixed. A later patch (#17) adds CPU IDs to the printk messages so that this isn't a problem. (That patch is actually obsolete now because Sergey has already merged work for linux-next that includes this information.) John Ogness