kvmarm.lists.cs.columbia.edu archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 0/8] perf: arm: Make PMUv3 driver available for aarch32
@ 2023-03-17 19:50 Zaid Al-Bassam
  2023-03-17 19:50 ` [PATCH v4 1/8] arm64: perf: Move PMUv3 driver to drivers/perf Zaid Al-Bassam
                   ` (10 more replies)
  0 siblings, 11 replies; 14+ messages in thread
From: Zaid Al-Bassam @ 2023-03-17 19:50 UTC (permalink / raw)
  To: Jesus Sanchez-Palencia, Russell King, Catalin Marinas,
	Will Deacon, Peter Zijlstra, Ingo Molnar,
	Arnaldo Carvalho de Melo, Mark Rutland, Alexander Shishkin,
	Jiri Olsa, Namhyung Kim, Marc Zyngier, James Morse,
	Suzuki K Poulose, Oliver Upton, Zenghui Yu, linux-arm-kernel,
	linux-kernel, linux-perf-users, kvmarm, kvmarm, f.fainelli
  Cc: Zaid Al-Bassam

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]. Patchset version 1 [v1] 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.

version 2 [v2] 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.

Changes in v3:
- Removed the link tag from the commit messages.
- Fixed the license header in the arm_pmuv3.h files.

Changes in v4:
- Rebased to 6.3.0-rc2 (Clean rebase)

[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@google.com/
[v2] https://lore.kernel.org/all/20230210165500.2292608-1-zalbassam@google.com/
[v3] https://lore.kernel.org/all/20230213210319.1075872-1-zalbassam@google.com/

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              | 247 ++++++++++++++
 arch/arm/mm/Kconfig                           |   2 +-
 arch/arm64/include/asm/arm_pmuv3.h            | 155 +++++++++
 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                | 303 ++++++++++++++++++
 11 files changed, 751 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.40.0.rc2.332.ga46443480c-goog


^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2023-03-27 15:01 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-17 19:50 [PATCH v4 0/8] perf: arm: Make PMUv3 driver available for aarch32 Zaid Al-Bassam
2023-03-17 19:50 ` [PATCH v4 1/8] arm64: perf: Move PMUv3 driver to drivers/perf Zaid Al-Bassam
2023-03-17 19:50 ` [PATCH v4 2/8] arm64: perf: Abstract system register accesses away Zaid Al-Bassam
2023-03-17 19:50 ` [PATCH v4 3/8] perf: pmuv3: Abstract PMU version checks Zaid Al-Bassam
2023-03-17 19:50 ` [PATCH v4 4/8] perf: pmuv3: Move inclusion of kvm_host.h to the arch-specific helper Zaid Al-Bassam
2023-03-17 19:50 ` [PATCH v4 5/8] perf: pmuv3: Change GENMASK to GENMASK_ULL Zaid Al-Bassam
2023-03-17 19:50 ` [PATCH v4 6/8] ARM: Make CONFIG_CPU_V7 valid for 32bit ARMv8 implementations Zaid Al-Bassam
2023-03-17 19:50 ` [PATCH v4 7/8] ARM: perf: Allow the use of the PMUv3 driver on 32bit ARM Zaid Al-Bassam
2023-03-17 19:50 ` [PATCH v4 8/8] ARM: mach-virt: Select PMUv3 driver by default Zaid Al-Bassam
2023-03-18 10:02 ` [PATCH v4 0/8] perf: arm: Make PMUv3 driver available for aarch32 Marc Zyngier
2023-03-24 13:56   ` Mark Rutland
2023-03-24 18:03     ` Will Deacon
2023-03-21 16:44 ` Florian Fainelli
2023-03-27 15:01 ` Will Deacon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).