Messages in this thread | | | Date | Wed, 10 Feb 2021 11:16:03 +0900 | From | Sergey Senozhatsky <> | Subject | Re: [PATCH v2] printk: fix deadlock when kernel panic |
| |
On (21/02/09 10:19), Petr Mladek wrote: > On Sat 2021-02-06 13:41:24, Muchun Song wrote:
[..]
> What about the following commit message? It uses imperative language > and explains that the patch just prevents the deadlock. It removes > some details. The diagram is better than many words. > > <commit message> > printk_safe_flush_on_panic() caused the following deadlock on our server: > > CPU0: CPU1: > panic rcu_dump_cpu_stacks > kdump_nmi_shootdown_cpus nmi_trigger_cpumask_backtrace > register_nmi_handler(crash_nmi_callback) printk_safe_flush > __printk_safe_flush > raw_spin_lock_irqsave(&read_lock) > // send NMI to other processors > apic_send_IPI_allbutself(NMI_VECTOR) > // NMI interrupt, dead loop > crash_nmi_callback > printk_safe_flush_on_panic > printk_safe_flush > __printk_safe_flush > // deadlock > raw_spin_lock_irqsave(&read_lock)
[..]
I would also add to the commit message that it avoids the deadlock _in this particular case_ at expense of losing contents of printk_safe buffers. This looks important enough to be mentioned.
-ss
| |