]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
KVM: selftests: Verify XCR0 can be "downgraded" and "upgraded"
authorSean Christopherson <seanjc@google.com>
Thu, 3 Oct 2024 23:43:32 +0000 (16:43 -0700)
committerSean Christopherson <seanjc@google.com>
Fri, 1 Nov 2024 16:26:32 +0000 (09:26 -0700)
Now that KVM selftests enable all supported XCR0 features by default, add
a testcase to the XCR0 vs. CPUID test to verify that the guest can disable
everything except the legacy FPU in XCR0, and then re-enable the full
feature set, which is kinda sorta what the test did before XCR0 was setup
by default.

Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Link: https://lore.kernel.org/r/20241003234337.273364-7-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
tools/testing/selftests/kvm/x86_64/xcr0_cpuid_test.c

index a4aecdc77da5688c505ee3b571974c8e33de06c6..c8a5c5e516619de79c7f0435e84bb9b9a78cb2f1 100644 (file)
@@ -79,6 +79,11 @@ static void guest_code(void)
        ASSERT_ALL_OR_NONE_XFEATURE(supported_xcr0,
                                    XFEATURE_MASK_XTILE);
 
+       vector = xsetbv_safe(0, XFEATURE_MASK_FP);
+       __GUEST_ASSERT(!vector,
+                      "Expected success on XSETBV(FP), got vector '0x%x'",
+                      vector);
+
        vector = xsetbv_safe(0, supported_xcr0);
        __GUEST_ASSERT(!vector,
                       "Expected success on XSETBV(0x%lx), got vector '0x%x'",