On 6/16/2023 7:45 AM, Sean Christopherson wrote:
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.
Since there's already a CET specific unit test app, do you mind adding
all CET related stuffs to
the app to make it inclusive? e.g., validate constraints between CET
CPUIDs vs. CET/XSS MSRs?