Messages in this thread | | | Date | Mon, 13 Feb 2023 18:02:21 +0000 | Subject | [PATCH 00/13] Extend the vPMU selftest | From | Raghavendra Rao Ananta <> |
| |
Hello,
This vPMU KVM selftest series is an extension to the selftests introduced by Reiji Watanabe in his series aims to limit the number of PMCs on vCPU from userspace [1].
The idea behind this series is to expand the test coverage to include the tests that validates actions from userspace, such as allowing or denying certain events via KVM_ARM_VCPU_PMU_V3_FILTER attribute, KVM's guarding of the PMU attributes to count EL2/EL3 events, and formal KVM behavior that enables PMU emulation. The last part validates the guest expectations of the vPMU by setting up a stress test that force-migrates multiple vCPUs frequently across random pCPUs in the system, thus ensuring KVM's management of vCPU PMU contexts correctly.
Patch-1 renames the test file to be more generic.
Patch-2 refactors the existing tests for plugging-in the upcoming tests easily.
Patch-3 and 4 add helper macros and functions respectively to interact with the cycle counter.
Patch-5 extends create_vpmu_vm() to accept an array of event filters as an argument that are to be applied to the VM.
Patch-6 tests the KVM_ARM_VCPU_PMU_V3_FILTER attribute by scripting various combinations of events that are to be allowed or denied to the guest and verifying guest's behavior.
Patch-7 adds test to validate KVM's handling of guest requests to count events in EL2/EL3.
Patch-8 introduces the vCPU migration stress testing by validating cycle counter and general purpose counter's behavior across vCPU migrations.
Patch-9, 10, and 11 expands the tests in patch-8 to validate overflow/IRQ functionality, chained events, and occupancy of all the PMU counters, respectively.
Patch-12 extends create_vpmu_vm() to create multiple vCPUs for the VM.
Patch-13 expands the stress tests for multiple vCPUs.
The series has been tested on hardwares with PMUv8p1 and PMUvp5.
Thank you. Raghavendra
[1]: https://lore.kernel.org/all/20230203040242.1792453-1-reijiw@google.com/
Raghavendra Rao Ananta (13): selftests: KVM: aarch64: Rename vpmu_counter_access.c to vpmu_test.c selftests: KVM: aarch64: Refactor the vPMU counter access tests tools: arm64: perf_event: Define Cycle counter enable/overflow bits selftests: KVM: aarch64: Add PMU cycle counter helpers selftests: KVM: aarch64: Consider PMU event filters for VM creation selftests: KVM: aarch64: Add KVM PMU event filter test selftests: KVM: aarch64: Add KVM EVTYPE filter PMU test selftests: KVM: aarch64: Add vCPU migration test for PMU selftests: KVM: aarch64: Test PMU overflow/IRQ functionality selftests: KVM: aarch64: Test chained events for PMU selftests: KVM: aarch64: Add PMU test to chain all the counters selftests: KVM: aarch64: Add multi-vCPU support for vPMU VM creation selftests: KVM: aarch64: Extend the vCPU migration test to multi-vCPUs
tools/arch/arm64/include/asm/perf_event.h | 7 + tools/testing/selftests/kvm/Makefile | 2 +- .../kvm/aarch64/vpmu_counter_access.c | 642 ------- .../testing/selftests/kvm/aarch64/vpmu_test.c | 1710 +++++++++++++++++ 4 files changed, 1718 insertions(+), 643 deletions(-) delete mode 100644 tools/testing/selftests/kvm/aarch64/vpmu_counter_access.c create mode 100644 tools/testing/selftests/kvm/aarch64/vpmu_test.c
-- 2.39.1.581.gbfd45094c4-goog
| |