Thread (31 messages) flat view 31 messages, 4 authors, 2020-10-22

Re: [PATCH v5 1/5] arm64: Add framework to turn IPI as NMI

From: Marc Zyngier <maz@kernel.org>
Date: 2020-10-21 10:28:01
Also in: lkml

On 2020-10-20 12:22, Sumit Garg wrote:
On Tue, 20 Oct 2020 at 15:38, Marc Zyngier [off-list ref] wrote:
quoted
On 2020-10-20 07:43, Sumit Garg wrote:
quoted
On Mon, 19 Oct 2020 at 17:07, Marc Zyngier [off-list ref] wrote:
[...]
quoted
quoted
quoted
+{
+     if (!ipi_desc)
+             return;
+
+     if (is_nmi) {
+             if (!prepare_percpu_nmi(ipi_id))
+                     enable_percpu_nmi(ipi_id, IRQ_TYPE_NONE);
+     } else {
+             enable_percpu_irq(ipi_id, IRQ_TYPE_NONE);
I'm not keen on this. Normal IRQs can't reliably work, so why do you
even bother with this?
Yeah I agree but we need to support existing functionality for kgdb
roundup and sysrq backtrace using normal IRQs as well.
When has this become a requirement? I don't really see the point in
implementing something that is known not to work.
For kgdb:

Default implementation [1] uses smp_call_function_single_async() which
in turn will invoke IPI as a normal IRQ to roundup CPUs.

[1] 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/kernel/debug/debug_core.c#n244

For sysrq backtrace:

Default implementation [2] fallbacks to smp_call_function() (IPI as a
normal IRQ) to print backtrace in case architecture doesn't provide
arch_trigger_cpumask_backtrace() hook.

[2] 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/tty/sysrq.c#n250

So in general, IPI as a normal IRQ is still useful for debugging but
it can't debug a core which is stuck in deadlock with interrupts
disabled.
And that's not something we implement today for good reasons:
it *cannot* work reliably. What changed that we all of a sudden need it?
And since we choose override default implementations for pseudo NMI
support, we need to be backwards compatible for platforms which don't
possess pseudo NMI support.
No. There is nothing to be "backward compatible" with, because
- this isn't a userspace visible feature
- *it doesn't work*

So please drop this non-feature from this series.

         M.
-- 
Jazz is not dead. It just smells funny...

_______________________________________________
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