RE: [PATCH v1 00/10] perf vendor events intel update
From: Taylor, Perry
Date: Wed Sep 24 2025 - 18:20:46 EST
Ok, after looking through this more carefully, on SPR/EMR I can rewrite the metric to use 'pcu' instead of 'pcu_0' as CT originally stated since they have only 1 PCU per socket.
If there are no objections, I'll start on an update.
Thanks,
Perry
-----Original Message-----
From: Ian Rogers <irogers@xxxxxxxxxx>
Sent: Wednesday, September 24, 2025 2:50 PM
To: Falcon, Thomas <thomas.falcon@xxxxxxxxx>; Chun-Tse Shao <ctshao@xxxxxxxxxx>; Taylor, Perry <perry.taylor@xxxxxxxxx>
Cc: alexander.shishkin@xxxxxxxxxxxxxxx; afaerber@xxxxxxx; Biggers, Caleb <caleb.biggers@xxxxxxxxx>; peterz@xxxxxxxxxxxxx; acme@xxxxxxxxxx; mingo@xxxxxxxxxx; Hunter, Adrian <adrian.hunter@xxxxxxxxx>; linux-perf-users@xxxxxxxxxxxxxxx; namhyung@xxxxxxxxxx; jolsa@xxxxxxxxxx; kan.liang@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; mani@xxxxxxxxxx
Subject: Re: [PATCH v1 00/10] perf vendor events intel update
On Wed, Sep 24, 2025 at 2:13 PM Falcon, Thomas <thomas.falcon@xxxxxxxxx> wrote:
>
> On Tue, 2025-09-23 at 23:02 -0700, Ian Rogers wrote:
> > Update events and some metrics to the latest perfmon versions:
> > - alderlake 1.34
> > - arrowlake 1.13
> > - emeraldrapids 1.20
> > - grandridge 1.10
> > - graniterapids 1.15
> > - lunarlake 1.18
> > - meteorlake 1.17
> > - sapphirerapids 1.35
> > - sierraforest 1.12
> >
>
> Metrics tests passed on Alder Lake, Sapphire Rapids, and Arrow Lake.
>
> Tested-by: Thomas Falcon <thomas.falcon@xxxxxxxxx>
Thanks! I think we found an issue on emeraldrapids that pcu_0/UNC_P_CLOCKTICKS/ should be pcu/UNC_P_CLOCKTICKS/ in the cpu_cstate metrics. The question is, how many PCUs does an emeraldrapids have? Is it guaranteed to be 1 or do we need to support suffixes when there is >1. I'm guessing the story on sapphirerapids is similar, we just didn't test it.
The use of a suffix in the PMU of the event name is to avoid aggregating all the clockticks together. A less efficient way to do this would be "UNC_P_CLOCKTICKS / source_count(UNC_P_CLOCKTICKS)"
which would compute an average of the clockticks. We could update perf to ignore _0 suffixes when looking for PMUs, which feels kind of hacky and ARM has different suffix conventions. We could do:
"pcu_0@UNC_P_CLOCKTICKS@ if has_event(pcu_0@UNC_P_CLOCKTICKS@) else pcu@UNC_P_CLOCKTICKS@"
which feels a little long winded. If we know EMR and SPR have just 1 PCU I think I'd prefer just to turn pcu_0 into pcu as a fix.
Thanks,
Ian
> Thanks,
> Tom
>
> > Ian Rogers (10):
> > perf vendor events intel: Update alderlake events to v1.34
> > perf vendor events intel: Update arrowlake events to v1.13
> > perf vendor events intel: Update emeraldrapids events to v1.20
> > perf vendor events intel: Update grandridge events to v1.10
> > perf vendor events intel: Update graniterapids events to v1.15
> > perf vendor events intel: Update lunarlake events to v1.18
> > perf vendor events intel: Update meteorlake events to v1.17
> > perf vendor events intel: Update pantherlake events to v1.00
> > perf vendor events intel: Update sapphirerapids events to v1.35
> > perf vendor events intel: Update sierraforest events to v1.12
> >
> > .../pmu-events/arch/x86/alderlake/cache.json | 36 +
> > .../pmu-events/arch/x86/arrowlake/cache.json | 46 +-
> > .../pmu-events/arch/x86/arrowlake/memory.json | 6 +-
> > .../pmu-events/arch/x86/arrowlake/other.json | 2 +-
> > .../arch/x86/emeraldrapids/cache.json | 63 +
> > .../arch/x86/emeraldrapids/emr-metrics.json | 12 +
> > .../arch/x86/emeraldrapids/uncore-cache.json | 11 +
> > .../arch/x86/emeraldrapids/uncore-memory.json | 22 +
> > .../arch/x86/emeraldrapids/uncore-power.json | 2 -
> > .../pmu-events/arch/x86/grandridge/cache.json | 20 +-
> > .../graniterapids/uncore-interconnect.json | 10 +-
> > .../arch/x86/graniterapids/uncore-memory.json | 112 ++
> > .../pmu-events/arch/x86/lunarlake/cache.json | 46 +-
> > .../pmu-events/arch/x86/lunarlake/memory.json | 6 +-
> > .../pmu-events/arch/x86/lunarlake/other.json | 2 +-
> > tools/perf/pmu-events/arch/x86/mapfile.csv | 20 +-
> > .../pmu-events/arch/x86/meteorlake/cache.json | 36 +
> > .../arch/x86/pantherlake/cache.json | 1207 ++++++++++-
> > .../arch/x86/pantherlake/counter.json | 9 +-
> > .../arch/x86/pantherlake/floating-point.json | 286 +++
> > .../arch/x86/pantherlake/frontend.json | 535 +++++
> > .../arch/x86/pantherlake/memory.json | 106 +-
> > .../arch/x86/pantherlake/other.json | 44 +
> > .../arch/x86/pantherlake/pipeline.json | 1776
> > ++++++++++++++++-
> > .../arch/x86/pantherlake/uncore-memory.json | 26 +
> > .../arch/x86/pantherlake/virtual-memory.json | 248 +++
> > .../arch/x86/sapphirerapids/cache.json | 63 +
> > .../arch/x86/sapphirerapids/spr-metrics.json | 12 +
> > .../arch/x86/sapphirerapids/uncore-cache.json | 11 +
> > .../x86/sapphirerapids/uncore-memory.json | 22 +
> > .../arch/x86/sapphirerapids/uncore-power.json | 2 -
> > .../arch/x86/sierraforest/cache.json | 61 +-
> > .../x86/sierraforest/uncore-interconnect.json | 10 +-
> > .../arch/x86/sierraforest/uncore-io.json | 1 -
> > .../arch/x86/sierraforest/uncore-memory.json | 103 +-
> > 35 files changed, 4712 insertions(+), 262 deletions(-) create mode
> > 100644 tools/perf/pmu-
> > events/arch/x86/pantherlake/floating-point.json
> > create mode 100644 tools/perf/pmu-
> > events/arch/x86/pantherlake/other.json
> > create mode 100644 tools/perf/pmu-
> > events/arch/x86/pantherlake/uncore-memory.json
> >
>