Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1550039

[RFC PATCH 00/10] Add support for the ARMv8.2 Statistical Profiling Extension

From Will Deacon <will.deacon@arm.com>
Newsgroups linux.kernel
Subject [RFC PATCH 00/10] Add support for the ARMv8.2 Statistical Profiling Extension
Date 2017-01-03 19:20 +0100
Message-ID <sVBQJ-1Kc-7@gated-at.bofh.it> (permalink)
Organization linux.* mail to news gateway

Show all headers | View raw


Hi all,

This RFC series adds support for the ARMv8.2 Statistical Profiling
Extension (SPE) to Linux in the form of a perf PMU driver. There aren't
any userspace patches for perf tool yet, but Kim (on CC) is working on
those and I thought posting the kernel side as an RFC was still worth it
in the meantime.

The series is structured as:

  1-2: Tweak arm64 CPU feature detection to support heterogeneous
       configurations where CPUs have differ in debug and profiling
       capabilities.

  3-4: Add EL2 SPE support (KVM world switch and initialisation)

  5-6: Export some functions to modules, so this driver can be built as
       a loadable module.

  7-8: Introduce PERF_AUX_FLAG_COLLISION

  9-10: Add the actual PMU driver and devicetree binding

Like intel-pt, the interface to the PMU is via the perf AUX area and the
profiling hardware writes directly to the pages mapped by userspace. The
hardware capabilities (caps/) and config field encodings (format/) are
advertised via sysfs.

Patches based on v4.10-rc2 and tested on an ARM FastModel.

Will

--->8

Will Deacon (10):
  arm64: cpufeature: allow for version discrepancy in PMU
    implementations
  arm64: cpufeature: Don't enforce system-wide SPE capability
  arm64: KVM: Save/restore the host SPE state when entering/leaving a VM
  arm64: head.S: Enable EL1 (host) access to SPE when entered at EL2
  genirq: export irq_get_percpu_devid_partition to modules
  perf/core: Export AUX buffer helpers to modules
  perf: Directly pass PERF_AUX_* flags to perf_aux_output_end
  perf/core: Add PERF_AUX_FLAG_COLLISION to report colliding samples
  drivers/perf: Add support for ARMv8.2 Statistical Profiling Extension
  dt-bindings: Document devicetree binding for ARM SPE

 Documentation/devicetree/bindings/arm/spe-pmu.txt |   20 +
 arch/arm64/include/asm/kvm_arm.h                  |    3 +
 arch/arm64/include/asm/kvm_host.h                 |    7 +-
 arch/arm64/include/asm/sysreg.h                   |    1 +
 arch/arm64/kernel/cpufeature.c                    |    9 +-
 arch/arm64/kernel/head.S                          |   14 +-
 arch/arm64/kvm/debug.c                            |    6 +
 arch/arm64/kvm/hyp/debug-sr.c                     |   66 +-
 arch/arm64/kvm/hyp/switch.c                       |   13 +-
 arch/x86/events/intel/bts.c                       |   11 +-
 arch/x86/events/intel/pt.c                        |   11 +-
 drivers/hwtracing/coresight/coresight-etm-perf.c  |    5 +-
 drivers/perf/Kconfig                              |    8 +
 drivers/perf/Makefile                             |    1 +
 drivers/perf/arm_spe_pmu.c                        | 1247 +++++++++++++++++++++
 include/linux/perf_event.h                        |    4 +-
 include/uapi/linux/perf_event.h                   |    1 +
 kernel/events/ring_buffer.c                       |   16 +-
 kernel/irq/irqdesc.c                              |    1 +
 19 files changed, 1416 insertions(+), 28 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/arm/spe-pmu.txt
 create mode 100644 drivers/perf/arm_spe_pmu.c

-- 
2.1.4

Back to linux.kernel | Previous | NextNext in thread | Find similar | Unroll thread


Thread

[RFC PATCH 00/10] Add support for the ARMv8.2 Statistical Profiling Extension Will Deacon <will.deacon@arm.com> - 2017-01-03 19:20 +0100
  [RFC PATCH 02/10] arm64: cpufeature: Don't enforce system-wide SPE capability Will Deacon <will.deacon@arm.com> - 2017-01-03 19:20 +0100
    Re: [RFC PATCH 02/10] arm64: cpufeature: Don't enforce system-wide  SPE capability Mark Rutland <mark.rutland@arm.com> - 2017-01-04 12:10 +0100
  [RFC PATCH 05/10] genirq: export irq_get_percpu_devid_partition to modules Will Deacon <will.deacon@arm.com> - 2017-01-03 19:20 +0100
  [RFC PATCH 01/10] arm64: cpufeature: allow for version discrepancy in PMU implementations Will Deacon <will.deacon@arm.com> - 2017-01-03 19:20 +0100
    Re: [RFC PATCH 01/10] arm64: cpufeature: allow for version  discrepancy in PMU implementations Mark Rutland <mark.rutland@arm.com> - 2017-01-04 11:30 +0100
  [RFC PATCH 04/10] arm64: head.S: Enable EL1 (host) access to SPE when entered at EL2 Will Deacon <will.deacon@arm.com> - 2017-01-03 19:20 +0100
  [RFC PATCH 09/10] drivers/perf: Add support for ARMv8.2 Statistical Profiling Extension Will Deacon <will.deacon@arm.com> - 2017-01-03 19:20 +0100
    Re: [RFC PATCH 09/10] drivers/perf: Add support for ARMv8.2  Statistical Profiling Extension Peter Zijlstra <peterz@infradead.org> - 2017-01-04 11:40 +0100
      Re: [RFC PATCH 09/10] drivers/perf: Add support for ARMv8.2  Statistical Profiling Extension Will Deacon <will.deacon@arm.com> - 2017-01-04 20:20 +0100
        Re: [RFC PATCH 09/10] drivers/perf: Add support for ARMv8.2  Statistical Profiling Extension Peter Zijlstra <peterz@infradead.org> - 2017-01-05 12:40 +0100
    Re: [RFC PATCH 09/10] drivers/perf: Add support for ARMv8.2  Statistical Profiling Extension Kim Phillips <kim.phillips@arm.com> - 2017-01-10 23:10 +0100
      Re: [RFC PATCH 09/10] drivers/perf: Add support for ARMv8.2  Statistical Profiling Extension Will Deacon <will.deacon@arm.com> - 2017-01-11 13:40 +0100
        Re: [RFC PATCH 09/10] drivers/perf: Add support for ARMv8.2  Statistical Profiling Extension Kim Phillips <kim.phillips@arm.com> - 2017-01-11 22:10 +0100
          Re: [RFC PATCH 09/10] drivers/perf: Add support for ARMv8.2  Statistical Profiling Extension Will Deacon <will.deacon@arm.com> - 2017-01-13 14:40 +0100
      Re: [RFC PATCH 09/10] drivers/perf: Add support for ARMv8.2  Statistical Profiling Extension Marc Zyngier <marc.zyngier@arm.com> - 2017-01-12 12:40 +0100
  [RFC PATCH 07/10] perf: Directly pass PERF_AUX_* flags to perf_aux_output_end Will Deacon <will.deacon@arm.com> - 2017-01-03 19:20 +0100
  [RFC PATCH 03/10] arm64: KVM: Save/restore the host SPE state when entering/leaving a VM Will Deacon <will.deacon@arm.com> - 2017-01-03 19:20 +0100
  [RFC PATCH 10/10] dt-bindings: Document devicetree binding for ARM SPE Will Deacon <will.deacon@arm.com> - 2017-01-03 19:20 +0100
  [RFC PATCH 08/10] perf/core: Add PERF_AUX_FLAG_COLLISION to report colliding samples Will Deacon <will.deacon@arm.com> - 2017-01-03 19:20 +0100

csiph-web