diff options
author | Sergey Senozhatsky <[email protected]> | 2018-05-30 16:03:50 +0900 |
---|---|---|
committer | Petr Mladek <[email protected]> | 2018-06-05 13:38:15 +0200 |
commit | 554755be08fba31c74f66b82a485e5513205af84 (patch) | |
tree | ee752cf843b10a809f16ecd366895795c9faac55 /tools/perf/scripts/python/bin/export-to-postgresql-report | |
parent | 988a35f8da1dec5a8cd2788054d1e717be61bf25 (diff) |
printk: drop in_nmi check from printk_safe_flush_on_panic()
Drop the in_nmi() check from printk_safe_flush_on_panic()
and attempt to re-init (IOW unlock) locked logbuf spinlock
from panic CPU regardless of its context.
Otherwise, theoretically, we can deadlock on logbuf trying to flush
per-CPU buffers:
a) Panic CPU is running in non-NMI context
b) Panic CPU sends out shutdown IPI via reboot vector
c) Panic CPU fails to stop all remote CPUs
d) Panic CPU sends out shutdown IPI via NMI vector
One of the CPUs that we bring down via NMI vector can hold
logbuf spin lock (theoretically).
Link: http://lkml.kernel.org/r/[email protected]
To: Steven Rostedt <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: [email protected]
Signed-off-by: Sergey Senozhatsky <[email protected]>
Signed-off-by: Petr Mladek <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/bin/export-to-postgresql-report')
0 files changed, 0 insertions, 0 deletions