Skip to content

RFC arm64:perf: Support for Hisilicon SoC Hardware event counters

John Garry linux-arm-kernel 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 RFC Latest0 of 10 patches 0 repliesNew

Patches in v1 No applies recorded yet

None of the 10 patches the cover letter announces are in this archive.

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [RFC PATCH v1 00/10] arm64:perf: Support for Hisilicon SoC Hardware event counters

On 04/08/2016 10:07, Anurup M wrote:

Hi Anurup,

Mark already kindly gave feedback to your original patchset in June. I think many of the comments he gave have been addressed in this patchset.

However, I think that if you want your driver to be reviewed and accepted then you should drop the "RFC" and ensure it is ready be be accepted. I think that it is unreasonable to expect the maintainers to just give comments again.

Thanks,
John

Quoted 82 lines

[Note: Resending the patch series as I missed to add Maintainers in --to field]

Provide Support for Hisilicon SoC Hip05 Hardware event counters. The Hisilicon SoC Hip05 series has many uncore or non-CPU performance events and counters units.

This patch is implemented refering to arm-cci, Intel/AMD uncore and also the cavium thunderX pmu patches.

Support for Hisilicon L3 cache(LLC) hardware events and counters are added in this implementation.

The Hisilicon PMU datastructures are designed so as to support uncore and also CPU specific events in future.

The Hisilicon LLC has four banks for a Super CPU Cluster(consists of
16 CPU cores) and each LLC bank has separate hardware events and counters.
In the current implementation, the count from all these banks are summarized and total count is output.

Hisilicon SoC use Djtag interface for r/w access to SoC PMU registers

The Hisilicon uncore PMUs can be found under /sys/bus/event_source/devices. The counters are exported via sysfs in the corresponding events files under the PMU directory so the perf tool can list the event names.

Note:
This is very initial patchset for Hisilicon Hip05 SoC PMU support shared for review. Please review and share comments.

TODO:
1. Counter overflow interrupt handling support.
2. CPU notifier to migrate to available online CPU's in case of CPU DOWN. Also mapping CPU cores to the current SCCL.
3. Support for counting of individual LLC banks

Anurup M (8):
arm64:perf: Add Documentaion for HIP05 PMU event counting.
1. Documentaion for perf usage and PMU events.
arm64:perf: Add Devicetree bindings for Hisilicon SoC PMU arm64:perf: Update Kconfig for Hisilicon PMU support arm64:perf: Add support for Hisilicon SoC event counters arm64:perf: Makefile for Hisilicon Hip05 PMU arm64:perf: Update Makefile for Hisilicon PMU support arm64:perf: L3 cache(LLC) event listing in perf
arm64: dts: hip05: Add L3 cache PMU support

Tan Xiaojun (2):
Documentation: arm64: Add Hisilicon HiP05/06/07 Sysctrl and Djtag dts
bindings
drivers: soc: Add support for Hisilicon Djtag driver

  .../bindings/arm/hisilicon/hisilicon.txt           |  97 ++++
  .../devicetree/bindings/arm/hisilicon/pmu.txt      |  52 ++
  Documentation/perf/hip05-pmu.txt                   |  70 +++
  arch/arm64/boot/dts/hisilicon/hip05.dtsi           |  19 +
  drivers/perf/Kconfig                               |   9 +
  drivers/perf/Makefile                              |   1 +
  drivers/perf/hisilicon/Makefile                    |   1 +
  drivers/perf/hisilicon/hisi_uncore_l3c.c           | 561 +++++++++++++++++++++
  drivers/perf/hisilicon/hisi_uncore_l3c.h           | 100 ++++
  drivers/perf/hisilicon/hisi_uncore_pmu.c           | 504 ++++++++++++++++++
  drivers/perf/hisilicon/hisi_uncore_pmu.h           | 148 ++++++
  drivers/soc/Kconfig                                |   1 +
  drivers/soc/Makefile                               |   1 +
  drivers/soc/hisilicon/Kconfig                      |  12 +
  drivers/soc/hisilicon/Makefile                     |   1 +
  drivers/soc/hisilicon/djtag.c                      | 373 ++++++++++++++
  include/linux/soc/hisilicon/djtag.h                |  18 +
  17 files changed, 1968 insertions(+)

create mode 100644 Documentation/devicetree/bindings/arm/hisilicon/pmu.txt create mode 100644 Documentation/perf/hip05-pmu.txt
create mode 100644 drivers/perf/hisilicon/Makefile
create mode 100644 drivers/perf/hisilicon/hisi_uncore_l3c.c create mode 100644 drivers/perf/hisilicon/hisi_uncore_l3c.h create mode 100644 drivers/perf/hisilicon/hisi_uncore_pmu.c create mode 100644 drivers/perf/hisilicon/hisi_uncore_pmu.h create mode 100644 drivers/soc/hisilicon/Kconfig
create mode 100644 drivers/soc/hisilicon/Makefile
create mode 100644 drivers/soc/hisilicon/djtag.c
create mode 100644 include/linux/soc/hisilicon/djtag.h