[PATCH 32/38] arm64: nmi: Add Kconfig for NMI

Vladimir Murzin vladimir.murzin at arm.com
Mon Sep 21 06:47:17 PDT 2026


On 9/16/26 10:06, Jinjie Ruan wrote:
> 
> 在 2026/9/14 18:20, Vladimir Murzin 写道:
>> From: Mark Brown <broonie at kernel.org>
>>
>> Since NMI handling is in some fairly hot paths we provide a Kconfig
>> option which allows support to be compiled out when not needed.
>>
>> Signed-off-by: Mark Brown <broonie at kernel.org>
>> Signed-off-by: Ada Couprie Diaz <ada.coupriediaz at arm.com>
>> Signed-off-by: Vladimir Murzin <vladimir.murzin at arm.com>
>> ---
>>  arch/arm64/Kconfig | 18 ++++++++++++++++++
>>  1 file changed, 18 insertions(+)
>>
>> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
>> index 2738637ccb92..df5ff59715d1 100644
>> --- a/arch/arm64/Kconfig
>> +++ b/arch/arm64/Kconfig
>> @@ -2251,6 +2251,24 @@ endmenu # "ARMv8.7 architectural features"
>>  config AS_HAS_MOPS
>>  	def_bool $(as-instr,.arch_extension mops)
>>  
>> +menu "ARMv8.8 architectural features"
>> +
>> +config ARM64_NMI
>> +	bool "Enable support for Non-maskable Interrupts (NMI)"
>> +	default y
> We should select HAVE_PERF_EVENTS_NMI to enable perf-NMI-based
> hardlockup detector as pseudo NMI do.
> 

It seems there are ongoing discussions [1,2] about moving away from it
towards the buddy detector. So I can add it, but I'm not sure whether
it will still be necessary in the future.

[1] https://lore.kernel.org/linux-arm-kernel/amtyQH7lzLDKE3WD@thinkstation/
[2] https://lore.kernel.org/lkml/20260902-qcom-wdt-nmi-series-v3-0-f3999362a9ea@google.com/

Thanks
Vladimir

> arch/arm64/Kconfig:     select HAVE_PERF_EVENTS_NMI if ARM64_PSEUDO_NMI
> || ARM64_NMI
> 
>> +	help
>> +	  Non-maskable interrupts are an architecture and GIC feature
>> +	  which allow the system to configure some interrupts to be
>> +	  configured to have superpriority, allowing them to be handled
>> +	  before other interrupts and masked for shorter periods of time.
>> +
>> +	  The feature is detected at runtime, and will remain disabled
>> +	  if the cpu does not implement the feature. It will also be
>> +	  disabled if pseudo NMIs are enabled at runtime.
>> +
>> +endmenu # "ARMv8.8 architectural features"
>> +
>> +
>>  menu "ARMv8.9 architectural features"
>>  
>>  config ARM64_POE
> 




More information about the linux-arm-kernel mailing list