| #
fa6dcbc6 |
| 27-Mar-2026 |
Ahmed S. Darwish <darwi@linutronix.de> |
x86/cpuid: Introduce a centralized CPUID parser
Introduce a CPUID parser for populating the system's CPUID tables.
Since accessing a leaf within the CPUID table requires compile time tokenization,
x86/cpuid: Introduce a centralized CPUID parser
Introduce a CPUID parser for populating the system's CPUID tables.
Since accessing a leaf within the CPUID table requires compile time tokenization, split the parser into two stages:
(a) Compile-time macros for tokenizing the leaf/subleaf offsets within the CPUID table.
(b) Generic runtime code to fill the CPUID data, using a parsing table which collects these compile-time offsets.
For actual CPUID output parsing, support both generic and leaf-specific read functions.
To ensure CPUID data early availability, invoke the parser during early boot, early Xen boot, and at early secondary CPUs bring up.
Provide call site APIs to refresh a single leaf, or a leaf range, within the CPUID tables. This is for sites issuing MSR writes that partially change the CPU's CPUID layout. Doing full CPUID table rescans in such cases will be destructive since the CPUID tables will host all of the kernel's X86_FEATURE flags at a later stage.
Suggested-by: Thomas Gleixner <tglx@kernel.org> Signed-off-by: Ahmed S. Darwish <darwi@linutronix.de> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Link: https://lore.kernel.org/all/20260327021645.555257-1-darwi@linutronix.de
show more ...
|