Enable support IPI_CPU_CRASH_STOP to be pseudo-NMI This patchset enables IPI_CPU_CRASH_STOP IPI to be pseudo-NMI. This allows kdump to collect system information even when the CPU is in a HARDLOCKUP state.
Only IPI_CPU_CRASH_STOP uses NMI and the other IPIs remain normal IRQs. The patch has been tested on ThunderX. This patch assumes Marc's latest IPIs patch-set. [1] It also uses some of Sumit's IPI patch set for NMI.[2] [1] https://lore.kernel.org/linux-arm-kernel/20200901144324.1071694-1-...@kernel.org/ [2] https://lore.kernel.org/linux-arm-kernel/1599830924-13990-3-git-send-email-sumit.g...@linaro.org/ $ echo 1 > /proc/sys/kernel/panic_on_rcu_stal $ echo HARDLOCKUP > /sys/kernel/debug/provoke-crash/DIRECT : kernel panics and crash kernel boot : makedumpfile saves the system state at HARDLOCKUP in vmcore. crash utility: crash> bt PID: 3213 TASK: fffffd001adc5940 CPU: 8 COMMAND: "bash" #0 [fffffe0022fefcf0] lkdtm_HARDLOCKUP at fffffe0010888ab4 #1 [fffffe0022fefd10] lkdtm_do_action at fffffe00108882bc #2 [fffffe0022fefd20] direct_entry at fffffe0010888720 #3 [fffffe0022fefd70] full_proxy_write at fffffe001058cfe4 #4 [fffffe0022fefdb0] vfs_write at fffffe00104a4c2c #5 [fffffe0022fefdf0] ksys_write at fffffe00104a4f0c #6 [fffffe0022fefe40] __arm64_sys_write at fffffe00104a4fbc #7 [fffffe0022fefe50] el0_svc_common.constprop.0 at fffffe0010159e38 #8 [fffffe0022fefe80] do_el0_svc at fffffe0010159fa0 #9 [fffffe0022fefe90] el0_svc at fffffe00101481d0 #10 [fffffe0022fefea0] el0_sync_handler at fffffe00101484b4 #11 [fffffe0022fefff0] el0_sync at fffffe0010142b7c Sumit Garg (1): irqchip/gic-v3: Enable support for SGIs to act as NMIs Yuichi Ito (1): Register IPI_CPU_CRASH_STOP IPI as pseudo-NMI arch/arm64/kernel/smp.c | 39 ++++++++++++++++++++++++++++-------- drivers/irqchip/irq-gic-v3.c | 13 ++++++++++-- 2 files changed, 42 insertions(+), 10 deletions(-) -- 2.25.1