On 28.01.2022 14:29, Andrew Cooper wrote: > With all other pieces in place, MSR_SPEC_CTRL is fully working for HVM guests. > > Update the CPUID derivation logic (both PV and HVM to avoid losing subtle > changes), drop the MSR intercept, and explicitly enable the CPUID bits for HVM > guests. > > Signed-off-by: Andrew Cooper <andrew.coop...@citrix.com>
Reviewed-by: Jan Beulich <jbeul...@suse.com> Oneremark: > --- a/xen/arch/x86/hvm/svm/svm.c > +++ b/xen/arch/x86/hvm/svm/svm.c > @@ -606,6 +606,10 @@ static void svm_cpuid_policy_changed(struct vcpu *v) > > vmcb_set_exception_intercepts(vmcb, bitmap); > > + /* Give access to MSR_SPEC_CTRL if the guest has been told about it. */ > + svm_intercept_msr(v, MSR_SPEC_CTRL, > + cp->extd.ibrs ? MSR_INTERCEPT_NONE : MSR_INTERCEPT_RW); Technically I suppose the intercept would also be unneeded if the MSR doesn't exist at all, as then the CPU would raise #GP(0) for any guest attempt to access it. Jan