[PATCH printk v2 0/5] various cleanups

From: John Ogness
Date: Mon Jul 10 2023 - 09:45:34 EST


Hi,

This is v2 of a series working towards threaded/atomic console
printing. This series is only a subset of the original
v1 [0]. That series began with various cleanups before adding
the threaded/atomic code. Since none of those cleanups made it
into the recent 6.5 merge window, I have decided to post them
as their own series. I hope this helps to get them accepted
without being attached to any threaded/atomic discussions.

Changes since v1:

- drop patches 5-18 (they will return in a follow-up series)

- console_unblank() aborts if called from NMI context

- console_flush_on_panic() directly flushes rather than using
console_lock/_unlock dance (because console_lock/_unlock is not
NMI-safe)

- remove @console_suspended and rely only on CON_SUSPENDED flag

- rename abandon_console_lock_in_panic() to
other_cpu_in_panic()

- console_trylock() and console_lock() will fail and block,
respectively, while another CPU is in panic

- adjust various comments and whitespace as suggested

John Ogness

[0] https://lore.kernel.org/lkml/20230302195618.156940-1-john.ogness@xxxxxxxxxxxxx

John Ogness (5):
kdb: do not assume write() callback available
printk: Add NMI safety to console_flush_on_panic() and
console_unblank()
printk: Consolidate console deferred printing
printk: Add per-console suspended state
printk: Rename abandon_console_lock_in_panic() to other_cpu_in_panic()

include/linux/console.h | 3 +
kernel/debug/kdb/kdb_io.c | 2 +
kernel/printk/internal.h | 2 +
kernel/printk/printk.c | 189 +++++++++++++++++++++++-------------
kernel/printk/printk_safe.c | 9 +-
5 files changed, 132 insertions(+), 73 deletions(-)


base-commit: 7ec85f3e089aa423a69559bf4555b6218b5a2ef7
--
2.30.2