Thread (42 messages) 42 messages, 7 authors, 2025-07-24

Re: [PATCH v7 05/10] x86/nmi: Assign and register NMI-source vectors

From: Sohil Mehta <hidden>
Date: 2025-07-07 20:01:07
Also in: kvm, linux-edac, linux-perf-users, linux-pm, lkml

On 7/7/2025 6:21 AM, Zhuo, Qiuxu wrote:
quoted
From: Sohil Mehta <redacted>
[...]
Vector 2 is reserved for external NMIs corresponding to the Local APIC -
LINT1 pin. Some third-party chipsets may send NMI messages with a fixed
vector value of 2. Using vector 2 for something else would lead to confusion
about the exact source. Do not assign it to any handler.

NMI-source vectors are only assigned for NMI_LOCAL type handlers.
Platform NMI handlers have a single handler registered per type. They don't
From the current NMI code point of view [1] or [2],
a type of platform NMI handler may have multiple handlers registered. 

[1] https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/x86/kernel/nmi.c#n199
[2] https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/x86/kernel/nmi.c#n201
We have warnings that should flag any time multiple handlers are
registered for SERR or IO_CHK:

	/*
	 * Indicate if there are multiple registrations on the
	 * internal NMI handler call chains (SERR and IO_CHECK).
	 */
	WARN_ON_ONCE(type == NMI_SERR && !list_empty(&desc->head));
	WARN_ON_ONCE(type == NMI_IO_CHECK && !list_empty(&desc->head));
quoted
need additional source information to differentiate among them.

[...]
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help