Re: [PATCH v2 1/6] x86/irq: Add enumeration of NMI source reporting CPU feature

From: Xin Li
Date: Tue Jun 11 2024 - 23:05:01 EST


On 6/11/2024 7:50 PM, H. Peter Anvin wrote:
On June 11, 2024 7:32:54 PM PDT, Xin Li <xin@xxxxxxxxx> wrote:
On 6/11/2024 9:54 AM, Jacob Pan wrote:
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 1d7122a1883e..b8b15f20b94e 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -511,12 +511,21 @@ config X86_CPU_RESCTRL
config X86_FRED
bool "Flexible Return and Event Delivery"
depends on X86_64
+ select X86_NMI_SOURCE
help
When enabled, try to use Flexible Return and Event Delivery
instead of the legacy SYSCALL/SYSENTER/IDT architecture for
ring transitions and exception/interrupt handling if the
system supports it.
+config X86_NMI_SOURCE

Lets reuse X86_FRED instead of adding another hard config option. See
below.

<snip>


With this, no need to add DISABLE_NMI_SOURCE to disabled-features.h:

1) If FRED is not available, NMI source won't be too.
2) If FRED is available but not enabled, all features relying on FRED
should be cleared. We probably should move the feature bits clearing
code into a static function when more such features are added in future.

/* Init cpu_entry_area before IST entries are set up */
setup_cpu_entry_areas();

Thanks!
Xin

And even if we did, FRED should not *select* NMI_SOURCE; the dependency goes the other way.

Right, I was a bit of confused but was focusing on why do we need this.