[PATCH printk v2 0/4] fix console flushing on panic

John Ogness
2023-10-13T20:43:50Z

Hi,

While testing various panic scenarios using legacy consoles, I
stumbled on a couple issues that cause the panic backtrace not
to be printed:

1. In panic, an unfinalized record blocks printing of finalized
records that may follow.

2. It is possible (and easy to reproduce) a scenario where the
console on the panic CPU hands over to a waiter of a stopped
CPU.

This series addresses these 2 issues while also performing some
minor cleanups to remove open coded checks about the panic
context.

Because of multiple refactoring done in recent history, it
would be helpful to provide the LTS maintainers with the proper
backported patches. I am happy to do this.

John Ogness

John Ogness (4):
printk: For @suppress_panic_printk check other panic
printk: Add this_cpu_in_panic()
printk: Skip unfinalized records in panic
printk: Ignore waiter on panic

kernel/printk/internal.h | 1 +
kernel/printk/printk.c | 64 +++++++++++++++++++------------
kernel/printk/printk_ringbuffer.c | 9 +++--
3 files changed, 45 insertions(+), 29 deletions(-)

base-commit: 29fda1ad2a64a62e1c51d61207396e2de1c67362
--
2.39.2