Message ID | 20230213180234.2885032-1-rananta@google.com (mailing list archive) |
---|---|
Headers | show |
Series | Extend the vPMU selftest | expand |
On Mon, Feb 13, 2023 at 10:02 AM Raghavendra Rao Ananta <rananta@google.com> wrote: > > 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. > Sorry for the typo (thanks Reiji for pointing it out!). It should be "PMUv3p1 and PMUv3p5". And the testing was done on v6.2-rc6 + [1]. Thank you. Raghavendra > 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 >
Hi Raghavendra, On Mon, Feb 13, 2023 at 06:02:21PM +0000, Raghavendra Rao Ananta wrote: > 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]. Right off the bat, I'd much prefer it if the patches weren't posted this way. Building on top of an in flight series requires that reviewers page in the context from Reiji's selftest patch in another thread then read what you have. I imagine this happened organically because you two are developing in parallel (which is great!), but at this point Reiji's kernel changes are only tangientally related to the selftest. Given that, is it possible to split the test + KVM changes into two distinct series that each of you will own? That way it is possible to get the full picture from one email thread alone. > 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. sidenote: if you wind up reposting the complete series these can just be squashed into the original patch. > 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.