Messages in this thread | | | Date | Fri, 12 May 2023 15:00:51 +0100 | From | Daniel Thompson <> | Subject | Re: [PATCH v8 09/10] arm64: kgdb: Roundup cpus using IPI as NMI |
| |
On Wed, Apr 19, 2023 at 03:56:03PM -0700, Douglas Anderson wrote: > From: Sumit Garg <sumit.garg@linaro.org> > > arm64 platforms with GICv3 or later supports pseudo NMIs which can be > leveraged to roundup CPUs which are stuck in hard lockup state with > interrupts disabled that wouldn't be possible with a normal IPI. > > So instead switch to roundup CPUs using IPI turned as NMI. And in > case a particular arm64 platform doesn't supports pseudo NMIs, > it will switch back to default kgdb CPUs roundup mechanism. > > Signed-off-by: Sumit Garg <sumit.garg@linaro.org> > Tested-by: Chen-Yu Tsai <wens@csie.org> > Signed-off-by: Douglas Anderson <dianders@chromium.org> > --- > > (no changes since v1) > > arch/arm64/kernel/ipi_nmi.c | 5 +++++ > arch/arm64/kernel/kgdb.c | 18 ++++++++++++++++++ > 2 files changed, 23 insertions(+) > > diff --git a/arch/arm64/kernel/ipi_nmi.c b/arch/arm64/kernel/ipi_nmi.c > index c592e92b8cbf..2adaaf1519e5 100644 > --- a/arch/arm64/kernel/ipi_nmi.c > +++ b/arch/arm64/kernel/ipi_nmi.c > @@ -8,6 +8,7 @@ > > #include <linux/interrupt.h> > #include <linux/irq.h> > +#include <linux/kgdb.h> > #include <linux/nmi.h> > #include <linux/smp.h> > > @@ -45,10 +46,14 @@ bool arch_trigger_cpumask_backtrace(const cpumask_t *mask, bool exclude_self) > static irqreturn_t ipi_nmi_handler(int irq, void *data) > { > irqreturn_t ret = IRQ_NONE; > + unsigned int cpu = smp_processor_id();
Does this play nice with CONFIG_DEBUG_PREEMPT? I may have missed something about the NMI entry but a quick scan of the arm64 arch_irq_disabled() suggests that debug_smp_processor_id() will issue warnings at this point...
Other than I didn't see anything I don't like here.
Daniel.
| |