On Tue, Mar 12, 2024 at 10:04:54AM +0000, Liuye wrote: > >On Tue, Mar 12, 2024 at 08:37:11AM +0000, Liuye wrote: > >> I know that you said schedule_work is not NMI save, which is the first > >> issue. Perhaps it can be fixed using irq_work_queue. But even if > >> irq_work_queue is used to implement it, there will still be a deadlock > >> problem because slave cpu1 still has not released the running queue > >> lock of master CPU0. > > > >This doesn't sound right to me. Why do you think CPU1 won't release > >the run queue lock? > > In this example, CPU1 is waiting for CPU0 to release dbg_slave_lock. That shouldn't be a problem. CPU0 will have released that lock by the time the irq work is dispatched. Daniel.