On 26/01/2022 08:44, 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), and explicitly enable the CPUID bits for HVM guests. > > Signed-off-by: Andrew Cooper <[email protected]>
SVM guests get rather more speedy with this hunk, which I missed: diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c index bc834556c5f7..f11622ed4ff8 100644 --- 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); + /* Give access to MSR_PRED_CMD if the guest has been told about it. */ svm_intercept_msr(v, MSR_PRED_CMD, cp->extd.ibpb ? MSR_INTERCEPT_NONE : MSR_INTERCEPT_RW); I've folded it into v2, but won't repost for just this. ~Andrew
