Re: [PATCH v3 2/2] x86/cpufeature: Add a debug print for unmet dependencies
From: Sohil Mehta
Date: Sat Dec 07 2024 - 08:15:06 EST
On 12/7/2024 12:35 AM, Ingo Molnar wrote:
>> void filter_feature_dependencies(struct cpuinfo_x86 *c)
>> {
>> + char feature_buf[12], depends_buf[12];
>> const struct cpuid_dep *d;
>>
>> for (d = cpuid_deps; d->feature; d++) {
>> - if (cpu_has(c, d->feature) && !cpu_has(c, d->depends))
>> + if (cpu_has(c, d->feature) && !cpu_has(c, d->depends)) {
>> + pr_debug("x86/cpu: Disabling feature %s since feature %s is missing\n",
>> + x86_feature_name(d->feature, feature_buf),
>> + x86_feature_name(d->depends, depends_buf));
>> do_clear_cpu_cap(c, d->feature);
>
> So why not make this a pr_info() at minimum?
>
I was hesitant because the feature disabling may be inconsequential to
the end user. Also, the printed numbers would not make sense unless they
have the kernel source handy. But maybe it's better to inform and let
the user decide.
> Since this new logic will disable certain feature bits on random
> machines, I'm sure there will be some surprises. I'd sure like to see
> this printed in the system log of my machine if it happens.
>
Sure, will update the print as follows in the next (hopefully final)
version.
pr_info("CPU%d: Disabling feature %s due to missing feature %s\n",
smp_processor_id(),
x86_feature_name(d->feature, feature_buf),
x86_feature_name(d->depends, depends_buf));
Since it seems almost certain that we are going in this direction will
merge this patch into the previous one and send a combined one next time.
> It might also inform firmware & distro testers that something wasn't
> set up properly on the firmware (or virtualization) side.
>
Sohil