[PATCH 00/13] Extend the vPMU selftest

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxx/


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




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux