From: Raghavendra Rao Ananta <rananta@google.com>
To: Oliver Upton <oupton@google.com>,
Reiji Watanabe <reijiw@google.com>, Marc Zyngier <maz@kernel.org>,
Ricardo Koller <ricarkol@google.com>,
James Morse <james.morse@arm.com>,
Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
Jing Zhang <jingzhangos@google.com>,
Colton Lewis <coltonlewis@google.com>,
Raghavendra Rao Anata <rananta@google.com>,
linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev,
linux-kernel@vger.kernel.org, kvm@vger.kernel.org
Subject: [PATCH 00/13] Extend the vPMU selftest
Date: Mon, 13 Feb 2023 18:02:21 +0000 [thread overview]
Message-ID: <20230213180234.2885032-1-rananta@google.com> (raw)
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
WARNING: multiple messages have this Message-ID (diff)
From: Raghavendra Rao Ananta <rananta@google.com>
To: Oliver Upton <oupton@google.com>,
Reiji Watanabe <reijiw@google.com>, Marc Zyngier <maz@kernel.org>,
Ricardo Koller <ricarkol@google.com>,
James Morse <james.morse@arm.com>,
Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
Jing Zhang <jingzhangos@google.com>,
Colton Lewis <coltonlewis@google.com>,
Raghavendra Rao Anata <rananta@google.com>,
linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev,
linux-kernel@vger.kernel.org, kvm@vger.kernel.org
Subject: [PATCH 00/13] Extend the vPMU selftest
Date: Mon, 13 Feb 2023 18:02:21 +0000 [thread overview]
Message-ID: <20230213180234.2885032-1-rananta@google.com> (raw)
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
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2023-02-13 18:02 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-13 18:02 Raghavendra Rao Ananta [this message]
2023-02-13 18:02 ` [PATCH 00/13] Extend the vPMU selftest Raghavendra Rao Ananta
2023-02-13 18:02 ` [PATCH 01/13] selftests: KVM: aarch64: Rename vpmu_counter_access.c to vpmu_test.c Raghavendra Rao Ananta
2023-02-13 18:02 ` Raghavendra Rao Ananta
2023-02-13 18:02 ` [PATCH 02/13] selftests: KVM: aarch64: Refactor the vPMU counter access tests Raghavendra Rao Ananta
2023-02-13 18:02 ` Raghavendra Rao Ananta
2023-02-13 18:02 ` [PATCH 03/13] tools: arm64: perf_event: Define Cycle counter enable/overflow bits Raghavendra Rao Ananta
2023-02-13 18:02 ` Raghavendra Rao Ananta
2023-02-13 18:02 ` [PATCH 04/13] selftests: KVM: aarch64: Add PMU cycle counter helpers Raghavendra Rao Ananta
2023-02-13 18:02 ` Raghavendra Rao Ananta
2023-02-13 18:02 ` [PATCH 05/13] selftests: KVM: aarch64: Consider PMU event filters for VM creation Raghavendra Rao Ananta
2023-02-13 18:02 ` Raghavendra Rao Ananta
2023-02-13 18:02 ` [PATCH 06/13] selftests: KVM: aarch64: Add KVM PMU event filter test Raghavendra Rao Ananta
2023-02-13 18:02 ` Raghavendra Rao Ananta
2023-02-13 18:02 ` [PATCH 07/13] selftests: KVM: aarch64: Add KVM EVTYPE filter PMU test Raghavendra Rao Ananta
2023-02-13 18:02 ` Raghavendra Rao Ananta
2023-02-13 18:02 ` [PATCH 08/13] selftests: KVM: aarch64: Add vCPU migration test for PMU Raghavendra Rao Ananta
2023-02-13 18:02 ` Raghavendra Rao Ananta
2023-02-13 18:02 ` [PATCH 09/13] selftests: KVM: aarch64: Test PMU overflow/IRQ functionality Raghavendra Rao Ananta
2023-02-13 18:02 ` Raghavendra Rao Ananta
2023-02-13 18:02 ` [PATCH 10/13] selftests: KVM: aarch64: Test chained events for PMU Raghavendra Rao Ananta
2023-02-13 18:02 ` Raghavendra Rao Ananta
2023-02-13 18:02 ` [PATCH 11/13] selftests: KVM: aarch64: Add PMU test to chain all the counters Raghavendra Rao Ananta
2023-02-13 18:02 ` Raghavendra Rao Ananta
2023-02-13 18:02 ` [PATCH 12/13] selftests: KVM: aarch64: Add multi-vCPU support for vPMU VM creation Raghavendra Rao Ananta
2023-02-13 18:02 ` Raghavendra Rao Ananta
2023-02-13 18:02 ` [PATCH 13/13] selftests: KVM: aarch64: Extend the vCPU migration test to multi-vCPUs Raghavendra Rao Ananta
2023-02-13 18:02 ` Raghavendra Rao Ananta
2023-02-13 23:39 ` [PATCH 00/13] Extend the vPMU selftest Raghavendra Rao Ananta
2023-02-13 23:39 ` Raghavendra Rao Ananta
2023-02-14 8:19 ` Oliver Upton
2023-02-14 8:19 ` Oliver Upton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230213180234.2885032-1-rananta@google.com \
--to=rananta@google.com \
--cc=coltonlewis@google.com \
--cc=james.morse@arm.com \
--cc=jingzhangos@google.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.linux.dev \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maz@kernel.org \
--cc=oupton@google.com \
--cc=pbonzini@redhat.com \
--cc=reijiw@google.com \
--cc=ricarkol@google.com \
--cc=suzuki.poulose@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.