Re: [PATCH 1/6] x86: KVM: Enable CMPccXADD CPUID and expose it to guest

From: Sean Christopherson
Date: Tue Nov 01 2022 - 11:12:40 EST


On Tue, Nov 01, 2022, Jiaxi Chen wrote:
>
>
> On 10/27/2022 1:15 AM, Borislav Petkov wrote:
> > On Wed, Oct 26, 2022 at 11:40:31AM +0800, Jiaxi Chen wrote:
> >>> What do you think about moving CPUID_7_1_EAX to be a KVM-only leaf too? AFAICT,
> >>> KVM passthrough is the only reason the existing features are defined.
> >
> > Yap, looking at the patches which added those 2 feature flags upstream,
> > they don't look like some particular use was the goal but rather to
> > expose it to guests. Besides, AVX512 apps do their own CPUID detection.
> >
> >> Since CPUID_7_1_EAX has only 5 features now, it is a big waste,
> >> should we move it to KVM-only leaf as Sean suggested. What's your
> >> opinion about this?
> >
> > Yes, pls do.
> >
> > And when you do, make sure to undo what
> >
> > b302e4b176d0 ("x86/cpufeatures: Enumerate the new AVX512 BFLOAT16 instructions")
> >
> > added.
> >
> > Thx.
> >
> Hi Sean and Boris,
>
> Just realized moving CPUID_7_1_EAX to kvm-only leaf will not save space
> in enum cpuid_leafs[]. CPUID_7_1_EAX is indeed removed, but someone
> else, ie. CPUID_DUMMY needs to take the place, otherwise the cpuid_leafs
> array would be deranged. Therefore, the length of x86 cpuid leaves is
> not decreased.

The order of "enum cpuid_leafs" is completely arbitrary.

After replacing CPUID_7_1_EAX with CPUID_DUMMY, replace CPUID_DUMMY with the last
leaf, which is currently CPUID_8000_001F_EAX, and update the #defines accordingly.
Alternatively, Boris may prefer skipping the intermediate CPUID_DUMMY step and
just replace CPUID_7_1_EAX with CPUID_8000_001F_EAX straightaway.