arm64: kgdb: Implement kgdb_roundup_cpus() to enable pseudo-NMI roundup
authorDouglas Anderson <dianders@chromium.org>
Wed, 6 Sep 2023 16:03:01 +0000 (09:03 -0700)
committerCatalin Marinas <catalin.marinas@arm.com>
Mon, 25 Sep 2023 16:15:29 +0000 (17:15 +0100)
commit2f5cd0c7ffde0ec7779f27e5c4ed30e131b66393
treeaafeb7656ba348c75a52da3e3fe3e004acd9019c
parentd7402513c935ad87413b01aa51a7ada0ad2f0163
arm64: kgdb: Implement kgdb_roundup_cpus() to enable pseudo-NMI roundup

Up until now we've been using the generic (weak) implementation for
kgdb_roundup_cpus() when using kgdb on arm64. Let's move to a custom
one. The advantage here is that, when pseudo-NMI is enabled on a
device, we'll be able to round up CPUs using pseudo-NMI. This allows
us to debug CPUs that are stuck with interrupts disabled. If
pseudo-NMIs are not enabled then we'll fallback to just using an IPI,
which is still slightly better than the generic implementation since
it avoids the potential situation described in the generic
kgdb_call_nmi_hook().

Co-developed-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Tested-by: Chen-Yu Tsai <wenst@chromium.org>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Link: https://lore.kernel.org/r/20230906090246.v13.6.I2ef26d1b3bfbed2d10a281942b0da7d9854de05e@changeid
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/kernel/smp.c