[PATCH v3 0/4] Handle NBCON consoles on KDB

From: Marcos Paulo de Souza
Date: Tue Sep 02 2025 - 14:34:18 EST


These changes reached v3 (since the first version was tagged as v2 by me...),
thanks to all reviewers for the suggestions and questions about the code.

A new patch was introduced this time (3/4), adding an exception to nbcon
code when trying to acquire the context of a console when KDB is running,
suggested by John and Petr. Thanks a lot!

Testing
-------

I did the tests using qemu and reapplying commit f79b163c4231
('Revert "serial: 8250: Switch to nbcon console"') created originally by
John, just to exercise the common 8250 serial from qemu. The commit can
be checked on [1]. I had to solve some conflicts since the code has been
reworked after the commit was reverted.

Without the patches, I can't see any mirrored messages on the NBCON
console when KDB is triggered. With the patches I can see the messages.

[1]: https://github.com/marcosps/linux/commit/618bd49f8533db85d9c322f9ad1cb0da22aca9ee

Signed-off-by: Marcos Paulo de Souza <mpdesouza@xxxxxxxx>
---
Changes in v3:
- Only call nbcon_context_release if nbcon_context_exit_unsafe returns true (John Ogness)
- Dropped the prototype of console_is_usable from kernel/printk/internal. (Petr Mladek)
- Add comments to the new functions introduced (Petr Mladek)
- Flush KDB console on nbcon_kdb_release (Petr Mladek)
- Add an exception for KDB on nbcon_context_try_acquire_direct (John Ogness and Petr Mladek)
- Link to v2: https://lore.kernel.org/r/20250811-nbcon-kgdboc-v2-0-c7c72bcdeaf6@xxxxxxxx

Changes in v2:
- Set by mistake ..
- Link to v1: https://lore.kernel.org/r/20250713-nbcon-kgdboc-v1-0-51eccd9247a8@xxxxxxxx

---
Marcos Paulo de Souza (4):
printk: nbcon: Export console_is_usable
printk: nbcon: Introduce KDB helpers
printk: nbcon: Allow KDB to acquire the NBCON context
kdb: Adapt kdb_msg_write to work with NBCON consoles

include/linux/console.h | 50 +++++++++++++++++++++++++++++++++
kernel/debug/kdb/kdb_io.c | 46 +++++++++++++++++++++----------
kernel/printk/internal.h | 44 -----------------------------
kernel/printk/nbcon.c | 70 +++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 151 insertions(+), 59 deletions(-)
---
base-commit: 618bd49f8533db85d9c322f9ad1cb0da22aca9ee
change-id: 20250713-nbcon-kgdboc-efcfc37fde46

Best regards,
--
Marcos Paulo de Souza <mpdesouza@xxxxxxxx>