[PATCH v2 0/8] perf: arm: Make PMUv3 driver available for aarch32
From: Zaid Al-Bassam
Date: Fri Feb 10 2023 - 11:55:20 EST
Currently, PMUv3 driver is only available for ARMv8 aarch64 platforms,
ARMv8 platorms running in aarch32 mode dont have access to the driver.
This is, especially, a problem for ARMv8 platforms that only have
aarch32 support, like the Cortex-A32.
Make the PMUv3 driver available to arm arch (ARMv8 aarch32) by moving
the PMUv3 driver from arm64 to drivers, that makes the driver common
to both arm and arm64 architectures, then add PMUv3 arm Support.
The main work in this patchset was made a while back by Marc Zyngier
in [1]. This patchset rebases Marc's patches to the latest kernel
revision and adds additional patches to accommodate the changes in the
kernel since Marc wrote the patches.
This is the v2 of the patch series [v1]. This version of the patchset
was created by Marc Zyngier and I picked it up from [2].
Changes in v2:
- Flattened the nested switches in the arm_pmuv3.h for arm.
- Removed wrappers and added stubs for the PMU KVM functions for arm.
- Added PMU version abstractions.
[1] https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git/log/?h=kvm-arm/pmuv3-32bit
[2] https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git/log/?h=arm/pmuv3
[v1] https://lore.kernel.org/all/20230126204444.2204061-1-zalbassam@xxxxxxxxxx/
Thank you,
Zaid Al-Bassam
Marc Zyngier (5):
arm64: perf: Move PMUv3 driver to drivers/perf
arm64: perf: Abstract system register accesses away
ARM: Make CONFIG_CPU_V7 valid for 32bit ARMv8 implementations
ARM: perf: Allow the use of the PMUv3 driver on 32bit ARM
ARM: mach-virt: Select PMUv3 driver by default
Zaid Al-Bassam (3):
perf: pmuv3: Abstract PMU version checks
perf: pmuv3: Move inclusion of kvm_host.h to the arch-specific helper
perf: pmuv3: Change GENMASK to GENMASK_ULL
arch/arm/Kconfig | 1 +
arch/arm/include/asm/arm_pmuv3.h | 259 ++++++++++++++
arch/arm/mm/Kconfig | 2 +-
arch/arm64/include/asm/arm_pmuv3.h | 167 ++++++++++
arch/arm64/include/asm/perf_event.h | 249 --------------
arch/arm64/kernel/Makefile | 1 -
drivers/perf/Kconfig | 10 +
drivers/perf/Makefile | 1 +
.../perf_event.c => drivers/perf/arm_pmuv3.c | 131 ++------
include/kvm/arm_pmu.h | 2 +-
include/linux/perf/arm_pmuv3.h | 315 ++++++++++++++++++
11 files changed, 787 insertions(+), 351 deletions(-)
create mode 100644 arch/arm/include/asm/arm_pmuv3.h
create mode 100644 arch/arm64/include/asm/arm_pmuv3.h
rename arch/arm64/kernel/perf_event.c => drivers/perf/arm_pmuv3.c (93%)
create mode 100644 include/linux/perf/arm_pmuv3.h
--
2.39.1.581.gbfd45094c4-goog