On 7/7/2025 6:21 AM, Zhuo, Qiuxu wrote: >> From: Sohil Mehta <sohil.mehta@xxxxxxxxx> >> [...] >> 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)); >> need additional source information to differentiate among them. >> >> [...]