Re: [PATCH 0/2] perf vendor events arm64: Add A720/A520 events/metrics

From: James Clark
Date: Tue Feb 18 2025 - 04:30:40 EST




On 18/02/2025 12:41 am, Ian Rogers wrote:
On Fri, Feb 14, 2025 at 2:02 AM James Clark <james.clark@xxxxxxxxxx> wrote:



On 14/02/2025 5:49 am, Yangyu Chen wrote:


On 14 Feb 2025, at 09:12, Namhyung Kim <namhyung@xxxxxxxxxx> wrote:

Hello,

On Thu, Feb 13, 2025 at 11:11:01PM +0800, Yangyu Chen wrote:
This patchset adds the perf JSON files for the Cortex-A720 and Cortex-A520
processors. Some events have been tested on Raxda Orion 6 with Cix P1 SoC
(8xA720 + 4xA520) running mainline Kernel with ACPI mode.

I'm curious how the name of PMUs look like. It is cortex_a720 (or a520)?

The name of PMUs comes from Arm's documentation. I have included these
links in each patch.

I remember there's a logic to check the length of hex digits at the end.


Could you provide more details about this?

Ian, are you ok with this?


I think they wouldn't be merged because they're core PMUs, so should be
fine? Even though they would otherwise be merged because they're more
than 3 hex digits.

Do we know the PMU names? If they are cortex_a520 and cortex_a720 then

It will be "armv9_cortex_a720" from this line:

PMUV3_INIT_SIMPLE(armv9_cortex_a720)

this comment at least reads a little stale:
https://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git/tree/tools/perf/util/pmus.c?h=perf-tools-next#n76
```
/*
* There is a '_{num}' suffix. For decimal suffixes any length
* will do, for hexadecimal ensure more than 2 hex digits so
* that S390's cpum_cf PMU doesn't match.
*/
```
James is right that core PMUs aren't put on the same list as uncore/other PMUs.

Thanks,
Ian

Thanks,
Namhyung


Yangyu Chen (2):
perf vendor events arm64: Add Cortex-A720 events/metrics
perf vendor events arm64: Add Cortex-A520 events/metrics

.../arch/arm64/arm/cortex-a520/bus.json | 26 ++
.../arch/arm64/arm/cortex-a520/exception.json | 18 +
.../arm64/arm/cortex-a520/fp_operation.json | 14 +
.../arch/arm64/arm/cortex-a520/general.json | 6 +
.../arch/arm64/arm/cortex-a520/l1d_cache.json | 50 ++
.../arch/arm64/arm/cortex-a520/l1i_cache.json | 14 +
.../arch/arm64/arm/cortex-a520/l2_cache.json | 46 ++
.../arch/arm64/arm/cortex-a520/l3_cache.json | 21 +
.../arch/arm64/arm/cortex-a520/ll_cache.json | 10 +
.../arch/arm64/arm/cortex-a520/memory.json | 58 +++
.../arch/arm64/arm/cortex-a520/metrics.json | 373 +++++++++++++++
.../arch/arm64/arm/cortex-a520/pmu.json | 8 +
.../arch/arm64/arm/cortex-a520/retired.json | 90 ++++
.../arm64/arm/cortex-a520/spec_operation.json | 70 +++
.../arch/arm64/arm/cortex-a520/stall.json | 82 ++++
.../arch/arm64/arm/cortex-a520/sve.json | 22 +
.../arch/arm64/arm/cortex-a520/tlb.json | 78 ++++
.../arch/arm64/arm/cortex-a520/trace.json | 32 ++
.../arch/arm64/arm/cortex-a720/bus.json | 18 +
.../arch/arm64/arm/cortex-a720/exception.json | 62 +++
.../arm64/arm/cortex-a720/fp_operation.json | 22 +
.../arch/arm64/arm/cortex-a720/general.json | 10 +
.../arch/arm64/arm/cortex-a720/l1d_cache.json | 50 ++
.../arch/arm64/arm/cortex-a720/l1i_cache.json | 14 +
.../arch/arm64/arm/cortex-a720/l2_cache.json | 62 +++
.../arch/arm64/arm/cortex-a720/l3_cache.json | 22 +
.../arch/arm64/arm/cortex-a720/ll_cache.json | 10 +
.../arch/arm64/arm/cortex-a720/memory.json | 54 +++
.../arch/arm64/arm/cortex-a720/metrics.json | 436 ++++++++++++++++++
.../arch/arm64/arm/cortex-a720/pmu.json | 8 +
.../arch/arm64/arm/cortex-a720/retired.json | 90 ++++
.../arch/arm64/arm/cortex-a720/spe.json | 42 ++
.../arm64/arm/cortex-a720/spec_operation.json | 90 ++++
.../arch/arm64/arm/cortex-a720/stall.json | 82 ++++
.../arch/arm64/arm/cortex-a720/sve.json | 50 ++
.../arch/arm64/arm/cortex-a720/tlb.json | 74 +++
.../arch/arm64/arm/cortex-a720/trace.json | 32 ++
.../arch/arm64/common-and-microarch.json | 15 +
tools/perf/pmu-events/arch/arm64/mapfile.csv | 2 +
39 files changed, 2263 insertions(+)
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a520/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a520/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a520/fp_operation.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a520/general.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a520/l1d_cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a520/l1i_cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a520/l2_cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a520/l3_cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a520/ll_cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a520/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a520/metrics.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a520/pmu.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a520/retired.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a520/spec_operation.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a520/stall.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a520/sve.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a520/tlb.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a520/trace.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a720/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a720/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a720/fp_operation.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a720/general.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a720/l1d_cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a720/l1i_cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a720/l2_cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a720/l3_cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a720/ll_cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a720/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a720/metrics.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a720/pmu.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a720/retired.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a720/spe.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a720/spec_operation.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a720/stall.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a720/sve.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a720/tlb.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a720/trace.json

--
2.47.2