[PATCH 0/6] arm64: perf: heterogeneous PMU support

Mark Rutland mark.rutland at arm.com
Tue May 26 09:31:10 PDT 2015


This patch series reworks the arm64 perf code, migrating it to the
shared PMU library and implementing CPU-specific PMU bindings. In doing
so the arm64 perf backend gains support for heterogeneous PMUs.

This series is based on both "ARM: perf: heterogeneous PMU support" [1], and
"ARM: perf: rework core into library" [2], applied sequentially.

The features and limitations laid out in [1] also apply to the arm64
implementation, as demonstrated by sample runs on Juno with the series applied:

$ perf stat -e armv8_cortex_a53/config=0x11/ -e armv8_cortex_a57/config=0x11/ ./a.out 

 Performance counter stats for './a.out':

         185250238 armv8_cortex_a53/config=0x11/                                    [55.34%]
         225006550 armv8_cortex_a57/config=0x11/                                    [43.96%]

       0.213953840 seconds time elapsed

$ perf stat -e cycles ./a.out 

 Performance counter stats for './a.out':

         830917902 cycles                    [64.60%]

       1.023141420 seconds time elapsed

Thanks,
Mark.

[1] http://lists.infradead.org/pipermail/linux-arm-kernel/2015-May/343144.html
[2] http://lists.infradead.org/pipermail/linux-arm-kernel/2015-May/346538.html

Mark Rutland (6):
  arm64: perf: factor out callchain code
  arm64: perf: move to shared arm_pmu framework
  arm64: perf: condense event number maps
  arm64: perf: add Cortex-A53 support
  arm64: perf: add Cortex-A57 support
  arm64: dts: juno: describe PMUs separately

 Documentation/devicetree/bindings/arm/pmu.txt |    2 +
 arch/arm64/Kconfig                            |    8 +-
 arch/arm64/boot/dts/arm/juno.dts              |   18 +-
 arch/arm64/include/asm/perf_event.h           |    2 +-
 arch/arm64/include/asm/pmu.h                  |   83 --
 arch/arm64/kernel/Makefile                    |    4 +-
 arch/arm64/kernel/perf_callchain.c            |  196 +++
 arch/arm64/kernel/perf_event.c                | 1592 -------------------------
 arch/arm64/kernel/perf_event_pmuv3.c          |  684 +++++++++++
 drivers/perf/Kconfig                          |    2 +-
 10 files changed, 899 insertions(+), 1692 deletions(-)
 delete mode 100644 arch/arm64/include/asm/pmu.h
 create mode 100644 arch/arm64/kernel/perf_callchain.c
 delete mode 100644 arch/arm64/kernel/perf_event.c
 create mode 100644 arch/arm64/kernel/perf_event_pmuv3.c

-- 
1.9.1




More information about the linux-arm-kernel mailing list