The interrupt is set using pseudo-NMI if it is available. Arm has a
diagnostic interrupt feature called "Arm Generic Diagnostic Dump and
Reset device", but the A64FX does not support this feature and instead
has its own device definition.
This patch series assumes that Sumit's patch has been patched.[1]
I tested on FX700:
$ echo 1 > /proc/sys/kernel/sysrq
$ echo HARDLOCKUP > /sys/kernel/debug/provoke-crash/DIRECT
[ 124.712351] lkdtm: Performing direct entry HARDLOCKUP
[ 147.232096] rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
:
:
Send the "chassis power diag" command from the management server
using ipmitool, the following message is shown:
[ 206.061770] sysrq: Trigger a crash
[ 206.061779] Kernel panic - not syncing: sysrq triggered crash
:
:
Changes in V3:
- Exclude Sumit's patch.
- Retest in v5.17.
Changes in V2:
- Include Sumit's patch.
- The handler calls handle_sysrq() to use the sysrq feature to cause
a panic.
- request_nmi() and request_irq() now use the same handler, and
the function name of the handler has also changed.
- Use readl()/writel() instead of readl_relaxed()/writel_relaxed().
[1] https://lore.kernel.org/all/[email protected]/
V2: https://lore.kernel.org/linux-arm-kernel/[email protected]/
V1: https://lore.kernel.org/linux-arm-kernel/[email protected]/
Hitomi Hasegawa (1):
soc: fujitsu: Add A64FX diagnostic interrupt driver
MAINTAINERS | 5 +
drivers/soc/Kconfig | 1 +
drivers/soc/Makefile | 1 +
drivers/soc/fujitsu/Kconfig | 13 +++
drivers/soc/fujitsu/Makefile | 3 +
drivers/soc/fujitsu/a64fx-diag.c | 151 +++++++++++++++++++++++++++++++
6 files changed, 174 insertions(+)
create mode 100644 drivers/soc/fujitsu/Kconfig
create mode 100644 drivers/soc/fujitsu/Makefile
create mode 100644 drivers/soc/fujitsu/a64fx-diag.c
--
2.27.0