Thread (47 messages) 47 messages, 5 authors, 2020-08-18

Re: [RFC 1/5] tty/sysrq: Make sysrq handler NMI aware

From: peterz@infradead.org
Date: 2020-08-14 14:34:19
Also in: linux-serial, lkml

On Fri, Aug 14, 2020 at 12:54:35PM +0530, Sumit Garg wrote:
On Thu, 13 Aug 2020 at 05:30, Doug Anderson [off-list ref] wrote:
quoted
On Tue, Jul 21, 2020 at 5:10 AM Sumit Garg [off-list ref] wrote:
Wishful thinking, but (as far as I can tell) irq_work_queue() only
queues work on the CPU running the NMI.  I don't have lots of NMI
experience, but any chance there is a variant that will queue work on
any CPU?  Then sysrq handlers that aren't NMI aware will be more
likely to work.
Unfortunately, queuing work on other CPUs isn't safe in NMI context,
see this warning [1]. The comment mentions:

/* Arch remote IPI send/receive backend aren't NMI safe */

Peter,

Can you throw some light here as to why it isn't considered NMI-safe
to send remote IPI in NMI context? Is it an arch specific limitation?
Yeah, remote irq_work uses __smp_call_single_queue() /
send_call_function_single_ipi() which isn't safe to be used from NMI
context in general.

arch_irq_work_raise() is very carefully implemented on a number of
platforms to be able to (self) IPI from NMI context.


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help