summaryrefslogtreecommitdiff
path: root/tools/testing/selftests/kvm/x86_64/sev_smoke_test.c
diff options
context:
space:
mode:
authorSean Christopherson <seanjc@google.com>2024-10-03 16:43:37 -0700
committerSean Christopherson <seanjc@google.com>2024-11-01 09:26:37 -0700
commit89f8869835e4da836bc60ab20568b7864706f94b (patch)
treed30732c4fc5c4f7cddb8ecea6e4bd22f146527d2 /tools/testing/selftests/kvm/x86_64/sev_smoke_test.c
parent3c4c128d02ed81ddbf9b374a77bc0cb5a91e0a87 (diff)
KVM: selftests: Ensure KVM supports AVX for SEV-ES VMSA FPU test
Verify that KVM's supported XCR0 includes AVX (and earlier features) when running the SEV-ES VMSA XSAVE test. In practice, the issue will likely never pop up, since KVM support for AVX predates KVM support for SEV-ES, but checking for KVM support makes the requirement more obvious. Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com> Link: https://lore.kernel.org/r/20241003234337.273364-12-seanjc@google.com Signed-off-by: Sean Christopherson <seanjc@google.com>
Diffstat (limited to 'tools/testing/selftests/kvm/x86_64/sev_smoke_test.c')
-rw-r--r--tools/testing/selftests/kvm/x86_64/sev_smoke_test.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/tools/testing/selftests/kvm/x86_64/sev_smoke_test.c b/tools/testing/selftests/kvm/x86_64/sev_smoke_test.c
index 965fc362dee3..ae77698e6e97 100644
--- a/tools/testing/selftests/kvm/x86_64/sev_smoke_test.c
+++ b/tools/testing/selftests/kvm/x86_64/sev_smoke_test.c
@@ -181,6 +181,8 @@ static void test_sev_es_shutdown(void)
int main(int argc, char *argv[])
{
+ const u64 xf_mask = XFEATURE_MASK_X87_AVX;
+
TEST_REQUIRE(kvm_cpu_has(X86_FEATURE_SEV));
test_sev(guest_sev_code, SEV_POLICY_NO_DBG);
@@ -193,7 +195,7 @@ int main(int argc, char *argv[])
test_sev_es_shutdown();
if (kvm_has_cap(KVM_CAP_XCRS) &&
- (xgetbv(0) & XFEATURE_MASK_X87_AVX) == XFEATURE_MASK_X87_AVX) {
+ (xgetbv(0) & kvm_cpu_supported_xcr0() & xf_mask) == xf_mask) {
test_sync_vmsa(0);
test_sync_vmsa(SEV_POLICY_NO_DBG);
}