RE: [PATCH v2 2/2] KVM: SVM: Add support for Virtual SPEC_CTRL

From: Babu Moger
Date: Mon Jan 04 2021 - 13:38:13 EST




> -----Original Message-----
> From: Sean Christopherson <seanjc@xxxxxxxxxx>
> Sent: Wednesday, December 30, 2020 10:08 AM
> To: Borislav Petkov <bp@xxxxxxxxx>
> Cc: Moger, Babu <Babu.Moger@xxxxxxx>; pbonzini@xxxxxxxxxx;
> tglx@xxxxxxxxxxxxx; mingo@xxxxxxxxxx; fenghua.yu@xxxxxxxxx;
> tony.luck@xxxxxxxxx; wanpengli@xxxxxxxxxxx; kvm@xxxxxxxxxxxxxxx;
> Lendacky, Thomas <Thomas.Lendacky@xxxxxxx>; peterz@xxxxxxxxxxxxx;
> joro@xxxxxxxxxx; x86@xxxxxxxxxx; kyung.min.park@xxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; krish.sadhukhan@xxxxxxxxxx; hpa@xxxxxxxxx;
> mgross@xxxxxxxxxxxxxxx; vkuznets@xxxxxxxxxx; Phillips, Kim
> <kim.phillips@xxxxxxx>; Huang2, Wei <Wei.Huang2@xxxxxxx>;
> jmattson@xxxxxxxxxx
> Subject: Re: [PATCH v2 2/2] KVM: SVM: Add support for Virtual SPEC_CTRL
>
> On Wed, Dec 30, 2020, Borislav Petkov wrote:
> > On Tue, Dec 22, 2020 at 04:31:55PM -0600, Babu Moger wrote:
> > > @@ -2549,7 +2559,10 @@ static int svm_get_msr(struct kvm_vcpu *vcpu,
> struct msr_data *msr_info)
> > > !guest_cpuid_has(vcpu, X86_FEATURE_AMD_SSBD))
> > > return 1;
> > >
> > > - msr_info->data = svm->spec_ctrl;
> > > + if (static_cpu_has(X86_FEATURE_V_SPEC_CTRL))
> > > + msr_info->data = svm->vmcb->save.spec_ctrl;
> > > + else
> > > + msr_info->data = svm->spec_ctrl;
> > > break;
> > > case MSR_AMD64_VIRT_SPEC_CTRL:
> > > if (!msr_info->host_initiated &&
> > > @@ -2640,6 +2653,8 @@ static int svm_set_msr(struct kvm_vcpu *vcpu,
> struct msr_data *msr)
> > > return 1;
> > >
> > > svm->spec_ctrl = data;
> > > + if (static_cpu_has(X86_FEATURE_V_SPEC_CTRL))
> > > + svm->vmcb->save.spec_ctrl = data;
> > > if (!data)
> > > break;
> > >
> >
> > Are the get/set_msr() accessors such a fast path that they need
> > static_cpu_has() ?
>
> Nope, they can definitely use boot_cpu_has().

With Tom's latest comment, this change may not be required.
I will remove these changes.
Thanks
Babu