[PATCH v3 0/2] printk: CPU backtrace not printing on panic
From: takakura
Date: Mon Aug 12 2024 - 03:22:59 EST
From: Ryo Takakura <takakura@xxxxxxxxxxxxx>
Hi!
This patchset fixes 2 issues on CPU backtrace during panic. The second
issue was pointed out by John [1].
(1) CPU backtrace triggered during panic has stopped working since the
commit 779dbc2e78d7 ("printk: Avoid non-panic CPUs writing to ringbuffer")
as it disabled non-panicked cpus writing into ringbuffer after panic.
(2) The usual(non-panic context) flushing of backtraces written into
ringbuffer does not work during panic as non-panicked CPUs can't do the
flushing themselves.
Reviewed-by: John Ogness <john.ogness@xxxxxxxxxxxxx>
Sincerely,
Ryo Takakura
---
V1:
[1] https://lore.kernel.org/all/20240729114601.176047-1-takakura@xxxxxxxxxxxxx/T/
Changes since V2:
[2] https://lore.kernel.org/lkml/20240803081649.224627-1-takakura@xxxxxxxxxxxxx/T/
- Thanks Petr and John for the feedbacks!
- Add reviewed-by. Petr on (1) and John on the series.
- Fix the order of the patches based on their dependency as suggested by John.
- For (2), instead of using console_flush_on_panic() for flushing backtraces,
introduce a function which can safely do the flushing in panic while non-panic
CPU's are still online as suggested by Petr. Note that the new function calls
is_printk_legacy_deferred() which is not yet in mainline [3].
[3] https://lore.kernel.org/all/20240804005138.3722656-24-john.ogness@xxxxxxxxxxxxx/
---
Ryo Takakura (2):
(1) Allow cpu backtraces to be written into ringbuffer during panic
(2) Handle flushing of CPU backtraces during panic
include/linux/console.h | 1 +
include/linux/panic.h | 1 +
kernel/panic.c | 9 ++++++++-
kernel/printk/printk.c | 16 +++++++++++++++-
4 files changed, 25 insertions(+), 2 deletions(-)
--
2.34.1