Message ID | 20240124024200.102792-13-weijiang.yang@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Enable CET Virtualization | expand |
On Tue, Jan 23, 2024 at 06:41:45PM -0800, Yang Weijiang wrote: >From: Sean Christopherson <seanjc@google.com> > >Add MSR_IA32_XSS to list of MSRs reported to userspace if supported_xss >is non-zero, i.e. KVM supports at least one XSS based feature. > >Before enabling CET virtualization series, guest IA32_MSR_XSS is >guaranteed to be 0, i.e., XSAVES/XRSTORS is executed in non-root mode >with XSS == 0, which equals to the effect of XSAVE/XRSTOR. > >Signed-off-by: Sean Christopherson <seanjc@google.com> >Signed-off-by: Yang Weijiang <weijiang.yang@intel.com> >Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com> Reviewed-by: Chao Gao <chao.gao@intel.com>
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 594c9e025f95..b3a39886e418 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -1464,6 +1464,7 @@ static const u32 msrs_to_save_base[] = { MSR_IA32_UMWAIT_CONTROL, MSR_IA32_XFD, MSR_IA32_XFD_ERR, + MSR_IA32_XSS, }; static const u32 msrs_to_save_pmu[] = { @@ -7374,6 +7375,10 @@ static void kvm_probe_msr_to_save(u32 msr_index) if (!(kvm_get_arch_capabilities() & ARCH_CAP_TSX_CTRL_MSR)) return; break; + case MSR_IA32_XSS: + if (!kvm_caps.supported_xss) + return; + break; default: break; }