Re: [PATCH v9 1/3] x86/cpu: Clear feature bits disabled at compile-time
From: Sohil Mehta
Date: Tue Mar 10 2026 - 18:01:08 EST
On 3/10/2026 11:03 AM, Maciej Wieczor-Retman wrote:
> From: Maciej Wieczor-Retman <maciej.wieczor-retman@xxxxxxxxx>
>
> If some config options are disabled during compile time, they still are
> enumerated in macros that use the x86_capability bitmask - cpu_has() or
> this_cpu_has().
>
> The features are also visible in /proc/cpuinfo even though they are not
> enabled - which is contrary to what the documentation states about the
> file. Examples of such feature flags are lam, fred, sgx, ibrs_enhanced,
> split_lock_detect, user_shstk, avx_vnni and enqcmd.
>
Do all of these features have compile time options today? For example, I
couldn't find X86_DISABLED_FEATURE_* equivalent for ibrs_enhanced,
split_lock_detect or avx_vnni. Maybe I am missing some obvious connection.
But, if these can't be disabled using config options, it would be better
to avoid any mention of them here.
> Once the cpu_caps_cleared[] is initialized with the autogenerated
> disabled bitmask apply_forced_caps() will clear the corresponding bits
> in boot_cpu_data.x86_capability[] and other secondary CPUs'
This sentence was a bit hard to read for me. How about?
Initialize cpu_caps_cleared[] with an autogenerated disabled bitmask.
During CPU init, apply_forced_caps() will clear the corresponding bits
in struct cpuinfo_x86 for each CPU. Thus features disabled at...
> cpu_data.x86_capability[]. Thus features disabled at compile time won't
> show up in /proc/cpuinfo.
>
> No BUGS are defined to be cleared at compile time, therefore only the
> NCAPINTS part of cpu_caps_cleared[] is initialized. The NBUGINTS part is
..NCAPINTS part of cpu_caps_cleared[] is initialized using the macro.
The NBUGINTS part is set to zero.
> set initialized to zero.
>
You don't need the word 'initialized' here.
> Reported-by: Farrah Chen <farrah.chen@xxxxxxxxx>
> Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220348
> Signed-off-by: Maciej Wieczor-Retman <maciej.wieczor-retman@xxxxxxxxx>
> ---
> arch/x86/kernel/cpu/common.c | 3 ++-
> arch/x86/tools/cpufeaturemasks.awk | 6 ++++++
> 2 files changed, 8 insertions(+), 1 deletion(-)
>
The code changes look good to me,
Reviewed-by: Sohil Mehta <sohil.mehta@xxxxxxxxx>