[PATCH v4 37/38] KVM: Selftests: Support mediated vPMU for vmx_pmu_caps_test
From: Mingwei Zhang
Date: Mon Mar 24 2025 - 13:50:30 EST
From: Dapeng Mi <dapeng1.mi@xxxxxxxxxxxxxxx>
Define KVM_ONE_VCPU_PMU_TEST_SUITE macro which calls
vm_create_with_one_vcpu_with_pmu() to create mediated vPMU enabled VM.
Then vmx_pmu_caps_test can supported mediated vPMU's validation.
Signed-off-by: Dapeng Mi <dapeng1.mi@xxxxxxxxxxxxxxx>
Signed-off-by: Mingwei Zhang <mizhang@xxxxxxxxxx>
---
.../selftests/kvm/include/kvm_test_harness.h | 13 +++++++++++++
tools/testing/selftests/kvm/x86/vmx_pmu_caps_test.c | 2 +-
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/kvm/include/kvm_test_harness.h b/tools/testing/selftests/kvm/include/kvm_test_harness.h
index 8f7c6858e8e2..4efde79708ce 100644
--- a/tools/testing/selftests/kvm/include/kvm_test_harness.h
+++ b/tools/testing/selftests/kvm/include/kvm_test_harness.h
@@ -23,6 +23,19 @@
kvm_vm_free(self->vcpu->vm); \
}
+#define KVM_ONE_VCPU_PMU_TEST_SUITE(name) \
+ FIXTURE(name) { \
+ struct kvm_vcpu *vcpu; \
+ }; \
+ \
+ FIXTURE_SETUP(name) { \
+ (void)vm_create_with_one_vcpu_with_pmu(&self->vcpu, NULL); \
+ } \
+ \
+ FIXTURE_TEARDOWN(name) { \
+ kvm_vm_free(self->vcpu->vm); \
+ }
+
#define KVM_ONE_VCPU_TEST(suite, test, guestcode) \
static void __suite##_##test(struct kvm_vcpu *vcpu); \
\
diff --git a/tools/testing/selftests/kvm/x86/vmx_pmu_caps_test.c b/tools/testing/selftests/kvm/x86/vmx_pmu_caps_test.c
index a1f5ff45d518..d23610131acb 100644
--- a/tools/testing/selftests/kvm/x86/vmx_pmu_caps_test.c
+++ b/tools/testing/selftests/kvm/x86/vmx_pmu_caps_test.c
@@ -73,7 +73,7 @@ static void guest_code(uint64_t current_val)
GUEST_DONE();
}
-KVM_ONE_VCPU_TEST_SUITE(vmx_pmu_caps);
+KVM_ONE_VCPU_PMU_TEST_SUITE(vmx_pmu_caps);
/*
* Verify that guest WRMSRs to PERF_CAPABILITIES #GP regardless of the value
--
2.49.0.395.g12beb8f557-goog