Messages in this thread | | | From | Sumit Garg <> | Subject | [PATCH v6 0/4] kdb: Improve console handling | Date | Thu, 4 Jun 2020 15:31:15 +0530 |
| |
This patch-set is aimed to improve console handling especially when kdb operates in NMI context.
Brief description of enhancements: - Add status check for console prior to invoking corresponding handler. - Fixup to avoid possible deadlock in NMI context due to usage of locks in the console handlers. - Prefer usage of polling I/O driver mode (lockless APIs) over invocation of console handlers.
Changes in v6: - Replace early_con -> kgdboc_earlycon_io_ops.cons. - Added Petr's review tag on patch #1, #2 and #3. - Drop Doug's review tag from patch #4 due to early_con changes which I think needs a re-review.
Changes in v5: - Rebased on top of tags/kgdb-5.8-rc1. - Get rid of kdb_io_write(). - Fixed issue reported by kbuild test robot. - Remove is_console from kgdboc_earlycon_io_ops as well. - Misc. comments. - Added Doug's review tag.
Changes in v4: - Use dbg_io_ops->write_char() directly instead of passing it as a function pointer. - Use "struct console" rather than "struct tty_driver" for comparison. - Make commit descriptions and comments more informative. - Add review tag for patch #2.
Changes in v3: - Split patch to have separate patch for console status check. - New patch to re-factor kdb message emit code. - New patch to prefer polling I/O over console mode. - Add code comments to describe usage of oops_in_progress.
Changes in v2: - Use oops_in_progress directly instead of bust_spinlocks().
Sumit Garg (4): kdb: Re-factor kdb_printf() message write code kdb: Check status of console prior to invoking handlers kdb: Make kdb_printf() console handling more robust kdb: Switch to use safer dbg_io_ops over console APIs
drivers/tty/serial/kgdb_nmi.c | 2 +- drivers/tty/serial/kgdboc.c | 32 +++++++++---------- drivers/usb/early/ehci-dbgp.c | 3 +- include/linux/kgdb.h | 5 ++- kernel/debug/kdb/kdb_io.c | 72 ++++++++++++++++++++++++++----------------- 5 files changed, 64 insertions(+), 50 deletions(-)
-- 2.7.4
| |