On June 23, 2025 10:40:59 AM PDT, Xin Li <xin@xxxxxxxxx> wrote: >On 6/20/2025 5:50 PM, H. Peter Anvin wrote: >> On 2025-06-20 17:45, H. Peter Anvin wrote: >>>> >>>> But I simply hate adding a disabled feature that depends on !X86_64; >>>> x86_64 has a broad scope, and new CPU features are often intentionally >>>> not enabled for 32-bit. >>>> >>>> (X86_DISABLED_FEATURE_PCID is the only one before LASS) >>> >>> More importantly, it is wrong. >>> >>> The 32-bit build can depend on this feature not existing, therefore it SHOULD be listed as a disabled feature. >>> >> >> Ok, that was word salad. What I meant was that the original patch is correct, and we SHOULD have this as a disabled feature. > >Agreed! > >> The reason is that it reduces the need to explicitly test for 32/64 bits for features that don't exist on 32 bits. When they are flagged as disabled, they get filtered out *at compile time*. > >It's better to make it depend on X86_32 directly rather than !X86_64: > >config X86_DISABLED_FEATURE_LASS > def_bool y > depends on X86_32 > > >But the disabled feature list due to lack of 32-bit enabling will keep >growing until we remove 32-bit kernel code. > >Wondering should we bother enforcing cpuid_deps[] on 32-bit? > >IOW, turn off the feature when its dependency isn’t satisfied on 32b-it; >don’t just throw a warning and hope for the best. > >Thanks! > Xin > We should have the dependencies enforced; in fact, preferably we would enforce them at build time as well.