Re: [PATCH V4] kdb: Fix the deadlock issue in KDB debugging.

From: Jiri Slaby
Date: Fri Mar 22 2024 - 02:54:56 EST


On 21. 03. 24, 12:50, liu.yec@xxxxxxx wrote:
From: LiuYe <liu.yeC@xxxxxxx>

Currently, if CONFIG_KDB_KEYBOARD is enabled, then kgdboc will
attempt to use schedule_work() to provoke a keyboard reset when
transitioning out of the debugger and back to normal operation.
This can cause deadlock because schedule_work() is not NMI-safe.

The stack trace below shows an example of the problem. In this
case the master cpu is not running from NMI but it has parked
the slave CPUs using an NMI and the parked CPUs is holding
spinlocks needed by schedule_work().

I am missing here an explanation (perhaps because I cannot find any docs for irq_work) why irq_work works in this case.

And why you need to schedule another work in the irq_work and not do the job directly.

thanks,
--
js
suse labs