[PATCH v2 0/8] Add NMI Support to RISC-V via SSE

Yunhui Cui posted 8 patches 1 week, 6 days ago
There is a newer version of this series
MAINTAINERS                            |   8 ++
arch/arm64/kernel/smp.c                |  11 --
arch/riscv/include/asm/sbi.h           |   1 +
arch/riscv/include/asm/smp.h           |  11 ++
arch/riscv/kernel/smp.c                |  74 +++++++----
drivers/firmware/riscv/Kconfig         |  10 ++
drivers/firmware/riscv/Makefile        |   1 +
drivers/firmware/riscv/riscv_sse_nmi.c | 172 +++++++++++++++++++++++++
include/linux/riscv_sse_nmi.h          |  26 ++++
include/linux/smp.h                    |  11 ++
10 files changed, 289 insertions(+), 36 deletions(-)
create mode 100644 drivers/firmware/riscv/riscv_sse_nmi.c
create mode 100644 include/linux/riscv_sse_nmi.h
[PATCH v2 0/8] Add NMI Support to RISC-V via SSE
Posted by Yunhui Cui 1 week, 6 days ago
This patchset is based on SSE[1]. It adds support for inter CPU NMI
interfaces, enabling operations such as CPU stopping, backtrace, and
kgdb to be performed via NMI which is a more robust approach compared
to IPI. In addition to inter CPU NMIs, it also adds support for unknown
NMI[2].

v1->v2: Utilized SBI_SSE_EVENT_LOCAL_SOFTWARE_INJECTED for inter CPU NMI communication.

[1] https://lore.kernel.org/all/20251105082639.342973-1-cleger@rivosinc.com/
[2] https://github.com/riscv-non-isa/riscv-sbi-doc/pull/223



Yunhui Cui (8):
  drivers: firmware: riscv: add SSE NMI support
  riscv: smp: move ipi_cpu_crash_stop() declaration to smp.h
  smp: move num_other_online_cpus() into smp.h
  riscv: smp: use NMI for crash stop
  riscv: smp: retry CPU stop with NMI if IPI fails
  riscv: smp: use NMI for backtrace
  riscv: smp: kgdb: Use NMI for CPU roundup
  drivers: firmware: riscv: add unknown nmi support

 MAINTAINERS                            |   8 ++
 arch/arm64/kernel/smp.c                |  11 --
 arch/riscv/include/asm/sbi.h           |   1 +
 arch/riscv/include/asm/smp.h           |  11 ++
 arch/riscv/kernel/smp.c                |  74 +++++++----
 drivers/firmware/riscv/Kconfig         |  10 ++
 drivers/firmware/riscv/Makefile        |   1 +
 drivers/firmware/riscv/riscv_sse_nmi.c | 172 +++++++++++++++++++++++++
 include/linux/riscv_sse_nmi.h          |  26 ++++
 include/linux/smp.h                    |  11 ++
 10 files changed, 289 insertions(+), 36 deletions(-)
 create mode 100644 drivers/firmware/riscv/riscv_sse_nmi.c
 create mode 100644 include/linux/riscv_sse_nmi.h

-- 
2.39.5