On Wed, May 31, 2023, Weijiang Yang wrote: > > On 5/30/2023 8:08 PM, Chao Gao wrote: > > > > > --- a/arch/x86/kvm/x86.c > > > > > +++ b/arch/x86/kvm/x86.c > > > > > @@ -3776,8 +3776,10 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info) > > > > > */ > > > > > if (data & ~kvm_caps.supported_xss) > > > > Shouldn't we check against the supported value of _this_ guest? similar to > > > > guest_supported_xcr0. > > > I don't think it requires an extra variable to serve per guest purpose. > > > > > > For guest XSS settings, now we don't add extra constraints like XCR0, thus > > QEMU can impose constraints by configuring guest CPUID.0xd.1 to indicate > > certain supervisor state components cannot be managed by XSAVES, even > > though KVM supports them. IOW, guests may differ in the supported values > > for the IA32_XSS MSR. > > OK, will change this part to align with xcr0 settings. Thanks! Please write KVM-Unit-Tests to verify KVM correctly handles the various MSRs related to CET, e.g. a test_cet_msrs() subtest in msr.c would do nicely. Hmm, though testing the combinations of CPUID bits will require multiple x86/unittests.cfg entries. Might be time to split up msr.c into a library and then multiple tests.