[PATCH 0/7] KVM: selftests: Test the consistency of the PMU's CPUID and its features

From: Like Xu
Date: Thu Mar 23 2023 - 03:27:42 EST


Hi,

The KVM selfstests shows advantages over the KUT in terms of finding
defects through flexible and varied guest settings form KVM user space.

This patch set tests whether Intel vPMU works properly with different
Intel CPUID.0xA configurations, in which three issues were identified.
It also provides test scaffolding and a sufficient number of pmu test cases
to subsequently provide adequate code coverage of AMD vPMU or Intel
complex features such as LBR or PEBS in selftests.

Please feel free to add more tests or share valuable comments.

Related bugs:
KVM: x86/pmu: Fix emulation on Intel counters' bit width
(https://lore.kernel.org/kvm/20230322093117.48335-1-likexu@xxxxxxxxxxx/)
KVM: x86/pmu: Add Intel PMU supported fixed counters bit mask
(https://lore.kernel.org/kvm/20230321112742.25255-1-likexu@xxxxxxxxxxx/)
KVM: x86/pmu: Prevent the PMU from counting disallowed events
(https://lore.kernel.org/kvm/20230307141400.1486314-2-aaronlewis@xxxxxxxxxx/)

Prerequisite:
KVM: selftests: Report enable_pmu module value when test is skipped
KVM: selftests: Add a helper to read kvm boolean module parameters
(https://lore.kernel.org/kvm/20230313085311.25327-1-likexu@xxxxxxxxxxx/)

Jinrong Liang (3):
KVM: selftests: Test Intel PMU architectural events on fixed counters
KVM: selftests: Test consistency of CPUID with num of Fixed counters
KVM: selftests: Test consistency of PMU MSRs with Intel PMU version

Like Xu (4):
KVM: selftests: Test Intel PMU architectural events on gp counters
KVM: selftests: Test consistency of CPUID with num of GP counters
KVM: selftests: Test Intel supported fixed counters bit mask
KVM: selftests: Test Intel counters' bit width emulation

tools/testing/selftests/kvm/Makefile | 1 +
.../selftests/kvm/x86_64/pmu_cpuid_test.c | 626 ++++++++++++++++++
2 files changed, 627 insertions(+)
create mode 100644 tools/testing/selftests/kvm/x86_64/pmu_cpuid_test.c

base-commit: 94db7c022e10c76ac8ac27878822c3deed80aae1
--
2.40.0