Re: [PATCH v3 00/35] GNR retirement latencies, topic and metric updates

Falcon, Thomas
2025-03-26T22:10:35Z

On Tue, 2025-03-25 at 17:03 -0700, Ian Rogers wrote:
> Add default mean, min and max retirement latency values to GNR
> events. Update the topics on a number of events previously
> "other". Switch TMA metrics to the generated version. Add TMA 5.02
> metrics for sandybridge, ivytown, ivybridge and jaketown.
>
> Events and metrics generated from the data and scripts in:
> https://github.com/intel/perfmon
> and:
> https://github.com/intel/perfmon/pull/298
>
> v3: Generate sierraforest metrics from the spreadsheet using
> conversion with the core type of crestmont.
>
> v2: Fix arrowlake PMU/cpu prefixes.

Hi Ian, I ran the all metrics test with this series on Granite Rapids and Alder Lake, which look
good. But on Arrow Lake, the test is failing with these "Metric 'x' not printed in" errors, though I
was already seeing this error for 'tma_data_sharing' on perf-tools-next before this series.

95: perf all metrics test:
...
Testing tma_l3_hit_latency
Metric 'tma_l3_hit_latency' not printed in:
WARNING: grouped events cpus do not match.
Events with CPUs not matching the leader will be removed from the group.
anon group { cpu_core/TOPDOWN.SLOTS/, cpu_core/topdown-retiring/, cpu_core/topdown-mem-bound/,
cpu_core/topdown-bad-spec/, cpu_core/MEMORY_STALLS.L3/, cpu_core/MEM_LOAD_RETIRED.L1_MISS/,
cpu_core/CPU
# Running 'internals/synthesize' benchmark:
Computing performance of single threaded perf event synthesis by
synthesizing events on the perf process itself:
Average synthesis took: 50.352 usec (+- 0.040 usec)
Average num. events: 59.000 (+- 0.000)
Average time per event 0.853 usec
Average data synthesis took: 54.031 usec (+- 0.023 usec)
Average num. events: 318.000 (+- 0.000)
Average time per event 0.170 usec

Performance counter stats for 'system wide':

<not counted> cpu_core/TOPDOWN.SLOTS/
<not counted> cpu_core/topdown-retiring/
<not counted> cpu_core/topdown-mem-bound/
<not counted> cpu_core/topdown-bad-spec/
<not counted> cpu_core/MEMORY_STALLS.L3/
<not counted> cpu_core/MEM_LOAD_RETIRED.L1_MISS/
<not counted> cpu_core/CPU_CLK_UNHALTED.THREAD/
85,996,024,928 TSC
<not counted> cpu_core/MEM_LOAD_RETIRED.FB_HIT/
<not counted> cpu_core/topdown-fe-bound/
<not counted> cpu_core/CPU_CLK_UNHALTED.REF_TSC/
<not counted> cpu_core/MEM_LOAD_RETIRED.L3_HIT/
<not counted> cpu_core/topdown-be-bound/
0 cpu_core/MEM_LOAD_RETIRED.L3_HIT/R
1,168,982,636 duration_time

1.165871382 seconds time elapsed
...
Testing tma_contested_accesses
Metric 'tma_contested_accesses' not printed in:
WARNING: grouped events cpus do not match.
Events with CPUs not matching the leader will be removed from the group.
anon group { cpu_core/TOPDOWN.SLOTS/, cpu_core/topdown-retiring/, cpu_core/topdown-mem-bound/,
cpu_core/topdown-bad-spec/, cpu_core/MEMORY_STALLS.L3/, cpu_core/MEM_LOAD_RETIRED.L1_MISS/,
cpu_core/CPU
# Running 'internals/synthesize' benchmark:
Computing performance of single threaded perf event synthesis by
synthesizing events on the perf process itself:
Average synthesis took: 49.920 usec (+- 0.054 usec)
Average num. events: 59.000 (+- 0.000)
Average time per event 0.846 usec
Average data synthesis took: 53.719 usec (+- 0.018 usec)
Average num. events: 317.000 (+- 0.000)
Average time per event 0.169 usec

Performance counter stats for 'system wide':

<not counted> cpu_core/TOPDOWN.SLOTS/
<not counted> cpu_core/topdown-retiring/
<not counted> cpu_core/topdown-mem-bound/
<not counted> cpu_core/topdown-bad-spec/
<not counted> cpu_core/MEMORY_STALLS.L3/
<not counted> cpu_core/MEM_LOAD_RETIRED.L1_MISS/
<not counted> cpu_core/CPU_CLK_UNHALTED.THREAD/
<not counted> cpu_core/MEM_LOAD_L3_HIT_RETIRED.XSNP_MISS/
<not counted> cpu_core/MEM_LOAD_L3_HIT_RETIRED.XSNP_HITM/
<not counted> cpu_core/topdown-fe-bound/
<not counted> cpu_core/MEM_LOAD_RETIRED.FB_HIT/
85,555,469,744 TSC
<not counted> cpu_core/CPU_CLK_UNHALTED.REF_TSC/
<not counted> cpu_core/topdown-be-bound/
0 cpu_core/MEM_LOAD_L3_HIT_RETIRED.XSNP_MISS/R
0 cpu_core/MEM_LOAD_L3_HIT_RETIRED.XSNP_HITM/R
1,162,546,965 duration_time

1.160085445 seconds time elapsed
Testing tma_data_sharing
Metric 'tma_data_sharing' not printed in:
WARNING: grouped events cpus do not match.
Events with CPUs not matching the leader will be removed from the group.
anon group { cpu_core/TOPDOWN.SLOTS/, cpu_core/topdown-retiring/, cpu_core/topdown-mem-bound/,
cpu_core/topdown-bad-spec/, cpu_core/MEMORY_STALLS.L3/, cpu_core/MEM_LOAD_RETIRED.L1_MISS/,
cpu_core/CPU
# Running 'internals/synthesize' benchmark:
Computing performance of single threaded perf event synthesis by
synthesizing events on the perf process itself:
Average synthesis took: 50.674 usec (+- 0.020 usec)
Average num. events: 59.000 (+- 0.000)
Average time per event 0.859 usec
Average data synthesis took: 54.870 usec (+- 0.012 usec)
Average num. events: 317.000 (+- 0.000)
Average time per event 0.173 usec

Performance counter stats for 'system wide':

<not counted> cpu_core/TOPDOWN.SLOTS/
<not counted> cpu_core/topdown-retiring/
<not counted> cpu_core/topdown-mem-bound/
<not counted> cpu_core/topdown-bad-spec/
<not counted> cpu_core/MEMORY_STALLS.L3/
<not counted> cpu_core/MEM_LOAD_RETIRED.L1_MISS/
<not counted> cpu_core/CPU_CLK_UNHALTED.THREAD/
<not counted> cpu_core/MEM_LOAD_L3_HIT_RETIRED.XSNP_NO_FWD/
<not counted> cpu_core/topdown-fe-bound/
<not counted> cpu_core/MEM_LOAD_RETIRED.FB_HIT/
87,121,737,080 TSC
<not counted> cpu_core/CPU_CLK_UNHALTED.REF_TSC/
<not counted> cpu_core/MEM_LOAD_L3_HIT_RETIRED.XSNP_FWD/
<not counted> cpu_core/topdown-be-bound/
0 cpu_core/MEM_LOAD_L3_HIT_RETIRED.XSNP_FWD/R
0 cpu_core/MEM_LOAD_L3_HIT_RETIRED.XSNP_NO_FWD/R
1,184,766,074 duration_time

1.180849743 seconds time elapsed
...
Testing tma_l2_hit_latency
Metric 'tma_l2_hit_latency' not printed in:
WARNING: grouped events cpus do not match.
Events with CPUs not matching the leader will be removed from the group.
anon group { cpu_core/TOPDOWN.SLOTS/, cpu_core/topdown-retiring/, cpu_core/MEMORY_STALLS.L2/,
cpu_core/topdown-mem-bound/, cpu_core/topdown-bad-spec/, cpu_core/MEM_LOAD_RETIRED.L1_MISS/,
cpu_core/CPU
# Running 'internals/synthesize' benchmark:
Computing performance of single threaded perf event synthesis by
synthesizing events on the perf process itself:
Average synthesis took: 49.950 usec (+- 0.013 usec)
Average num. events: 59.000 (+- 0.000)
Average time per event 0.847 usec
Average data synthesis took: 54.135 usec (+- 0.009 usec)
Average num. events: 317.000 (+- 0.000)
Average time per event 0.171 usec

Performance counter stats for 'system wide':

<not counted> cpu_core/TOPDOWN.SLOTS/
<not counted> cpu_core/topdown-retiring/
<not counted> cpu_core/MEMORY_STALLS.L2/
<not counted> cpu_core/topdown-mem-bound/
<not counted> cpu_core/topdown-bad-spec/
<not counted> cpu_core/MEM_LOAD_RETIRED.L1_MISS/
<not counted> cpu_core/CPU_CLK_UNHALTED.THREAD/
<not counted> cpu_core/MEM_LOAD_RETIRED.L2_HIT/
85,906,148,824 TSC
<not counted> cpu_core/MEM_LOAD_RETIRED.FB_HIT/
<not counted> cpu_core/topdown-fe-bound/
<not counted> cpu_core/CPU_CLK_UNHALTED.REF_TSC/
<not counted> cpu_core/topdown-be-bound/
0 cpu_core/MEM_LOAD_RETIRED.L2_HIT/R
1,166,956,643 duration_time

1.166293851 seconds time elapsed
...

---- end(-1) ----
95: perf all metrics test : FAILED!

Thanks,
Tom

>
> Ian Rogers (35):
> perf vendor events: Update alderlake events/metrics
> perf vendor events: Update AlderlakeN events/metrics
> perf vendor events: Update arrowlake events/metrics
> perf vendor events: Update bonnell events
> perf vendor events: Update broadwell metrics
> perf vendor events: Update broadwellde metrics
> perf vendor events: Update broadwellx metrics
> perf vendor events: Update cascadelakex events/metrics
> perf vendor events: Update clearwaterforest events
> perf vendor events: Update elkhartlake events
> perf vendor events: Update emeraldrapids events/metrics
> perf vendor events: Update grandridge events/metrics
> perf vendor events: Add graniterapids retirement latencies
> perf vendor events: Update haswell metrics
> perf vendor events: Update haswellx metrics
> perf vendor events: Update icelake events/metrics
> perf vendor events: Update icelakex events/metrics
> perf vendor events: Update ivybridge metrics
> perf vendor events: Update ivytown metrics
> perf vendor events: Update jaketown metrics
> perf vendor events: Update lunarlake events/metrics
> perf vendor events: Update meteorlake events/metrics
> perf vendor events: Update nehalemep events
> perf vendor events: Update nehalemex events
> perf vendor events: Update rocketlake events/metrics
> perf vendor events: Update sandybridge metrics
> perf vendor events: Update sapphirerapids events/metrics
> perf vendor events: Update sierraforest events/metrics
> perf vendor events: Update skylake metrics
> perf vendor events: Update skylakex events/metrics
> perf vendor events: Update snowridgex events
> perf vendor events: Update tigerlake metrics
> perf vendor events: Update westmereep-dp events
> perf vendor events: Update westmereep-dp events
> perf vendor events: Update westmereep-dp events
>
> .../arch/x86/alderlake/adl-metrics.json | 485 ++++++++-------
> .../pmu-events/arch/x86/alderlake/cache.json | 77 +++
> .../pmu-events/arch/x86/alderlake/memory.json | 55 ++
> .../pmu-events/arch/x86/alderlake/other.json | 196 ------
> .../arch/x86/alderlake/pipeline.json | 67 ++-
> .../arch/x86/alderlaken/adln-metrics.json | 54 +-
> .../pmu-events/arch/x86/alderlaken/cache.json | 50 ++
> .../arch/x86/alderlaken/memory.json | 40 ++
> .../pmu-events/arch/x86/alderlaken/other.json | 98 ---
> .../arch/x86/alderlaken/pipeline.json | 11 +-
> .../arch/x86/arrowlake/arl-metrics.json | 562 +++++++++---------
> .../pmu-events/arch/x86/arrowlake/cache.json | 148 +++++
> .../pmu-events/arch/x86/arrowlake/memory.json | 11 +
> .../pmu-events/arch/x86/arrowlake/other.json | 193 ------
> .../arch/x86/arrowlake/pipeline.json | 163 ++++-
> .../pmu-events/arch/x86/bonnell/other.json | 8 -
> .../pmu-events/arch/x86/bonnell/pipeline.json | 8 +
> .../arch/x86/broadwell/bdw-metrics.json | 256 ++++----
> .../arch/x86/broadwellde/bdwde-metrics.json | 180 +++---
> .../arch/x86/broadwellx/bdx-metrics.json | 268 +++++----
> .../arch/x86/cascadelakex/cache.json | 404 +++++++++++++
> .../arch/x86/cascadelakex/clx-metrics.json | 389 ++++++------
> .../arch/x86/cascadelakex/other.json | 404 -------------
> .../arch/x86/clearwaterforest/cache.json | 20 +
> .../arch/x86/clearwaterforest/other.json | 22 -
> .../arch/x86/elkhartlake/cache.json | 192 ++++++
> .../arch/x86/elkhartlake/memory.json | 202 +++++++
> .../arch/x86/elkhartlake/other.json | 394 ------------
> .../arch/x86/emeraldrapids/cache.json | 100 ++++
> .../arch/x86/emeraldrapids/emr-metrics.json | 471 ++++++++-------
> .../arch/x86/emeraldrapids/memory.json | 170 ++++++
> .../arch/x86/emeraldrapids/other.json | 328 ----------
> .../arch/x86/emeraldrapids/pipeline.json | 58 ++
> .../pmu-events/arch/x86/grandridge/cache.json | 150 ++++-
> .../arch/x86/grandridge/counter.json | 2 +-
> .../arch/x86/grandridge/frontend.json | 8 +
> .../arch/x86/grandridge/grr-metrics.json | 521 +---------------
> .../pmu-events/arch/x86/grandridge/other.json | 28 -
> .../arch/x86/grandridge/pipeline.json | 51 +-
> .../arch/x86/grandridge/uncore-cache.json | 45 +-
> .../arch/x86/grandridge/uncore-memory.json | 338 +++++++++++
> .../arch/x86/graniterapids/cache.json | 122 ++++
> .../arch/x86/graniterapids/counter.json | 5 +
> .../arch/x86/graniterapids/frontend.json | 21 +
> .../arch/x86/graniterapids/gnr-metrics.json | 483 ++++++++-------
> .../arch/x86/graniterapids/memory.json | 130 ++++
> .../arch/x86/graniterapids/other.json | 237 --------
> .../arch/x86/graniterapids/pipeline.json | 52 ++
> .../arch/x86/graniterapids/uncore-cache.json | 42 ++
> .../graniterapids/uncore-interconnect.json | 90 ++-
> .../arch/x86/graniterapids/uncore-memory.json | 240 ++++++++
> .../arch/x86/haswell/hsw-metrics.json | 206 ++++---
> .../arch/x86/haswellx/hsx-metrics.json | 222 ++++---
> .../pmu-events/arch/x86/icelake/cache.json | 60 ++
> .../arch/x86/icelake/icl-metrics.json | 385 ++++++------
> .../pmu-events/arch/x86/icelake/memory.json | 160 +++++
> .../pmu-events/arch/x86/icelake/other.json | 220 -------
> .../pmu-events/arch/x86/icelakex/cache.json | 273 +++++++++
> .../arch/x86/icelakex/icx-metrics.json | 399 +++++++------
> .../pmu-events/arch/x86/icelakex/memory.json | 190 ++++++
> .../pmu-events/arch/x86/icelakex/other.json | 463 ---------------
> .../arch/x86/ivybridge/ivb-metrics.json | 76 ++-
> .../arch/x86/ivybridge/metricgroups.json | 5 +
> .../arch/x86/ivytown/ivt-metrics.json | 80 ++-
> .../arch/x86/ivytown/metricgroups.json | 5 +
> .../arch/x86/jaketown/frontend.json | 8 +
> .../arch/x86/jaketown/jkt-metrics.json | 40 +-
> .../arch/x86/jaketown/metricgroups.json | 5 +
> .../pmu-events/arch/x86/jaketown/other.json | 8 -
> .../pmu-events/arch/x86/lunarlake/cache.json | 122 ++++
> .../arch/x86/lunarlake/lnl-metrics.json | 556 +++++++++--------
> .../pmu-events/arch/x86/lunarlake/memory.json | 44 ++
> .../pmu-events/arch/x86/lunarlake/other.json | 353 -----------
> .../arch/x86/lunarlake/pipeline.json | 187 ++++++
> tools/perf/pmu-events/arch/x86/mapfile.csv | 14 +-
> .../pmu-events/arch/x86/meteorlake/cache.json | 179 ++++++
> .../arch/x86/meteorlake/memory.json | 44 ++
> .../arch/x86/meteorlake/mtl-metrics.json | 549 +++++++++--------
> .../pmu-events/arch/x86/meteorlake/other.json | 140 -----
> .../arch/x86/meteorlake/pipeline.json | 44 +-
> .../arch/x86/meteorlake/uncore-memory.json | 18 +
> .../pmu-events/arch/x86/nehalemep/cache.json | 32 +
> .../pmu-events/arch/x86/nehalemep/other.json | 40 --
> .../arch/x86/nehalemep/virtual-memory.json | 8 +
> .../pmu-events/arch/x86/nehalemex/cache.json | 32 +
> .../pmu-events/arch/x86/nehalemex/other.json | 40 --
> .../arch/x86/nehalemex/virtual-memory.json | 8 +
> .../pmu-events/arch/x86/rocketlake/cache.json | 60 ++
> .../arch/x86/rocketlake/memory.json | 160 +++++
> .../pmu-events/arch/x86/rocketlake/other.json | 220 -------
> .../arch/x86/rocketlake/rkl-metrics.json | 385 ++++++------
> .../arch/x86/sandybridge/frontend.json | 8 +
> .../arch/x86/sandybridge/metricgroups.json | 5 +
> .../arch/x86/sandybridge/other.json | 8 -
> .../arch/x86/sandybridge/snb-metrics.json | 36 +-
> .../arch/x86/sapphirerapids/cache.json | 150 +++++
> .../arch/x86/sapphirerapids/memory.json | 170 ++++++
> .../arch/x86/sapphirerapids/other.json | 378 ------------
> .../arch/x86/sapphirerapids/pipeline.json | 58 ++
> .../arch/x86/sapphirerapids/spr-metrics.json | 465 ++++++++-------
> .../arch/x86/sierraforest/cache.json | 20 +
> .../arch/x86/sierraforest/memory.json | 20 +
> .../arch/x86/sierraforest/other.json | 48 --
> .../arch/x86/sierraforest/pipeline.json | 8 +
> .../arch/x86/sierraforest/srf-metrics.json | 204 ++++---
> .../arch/x86/sierraforest/uncore-cache.json | 32 +
> .../arch/x86/sierraforest/uncore-memory.json | 240 ++++++++
> .../arch/x86/skylake/skl-metrics.json | 367 ++++++------
> .../pmu-events/arch/x86/skylakex/cache.json | 74 +++
> .../pmu-events/arch/x86/skylakex/other.json | 74 ---
> .../arch/x86/skylakex/skx-metrics.json | 385 ++++++------
> .../pmu-events/arch/x86/snowridgex/cache.json | 192 ++++++
> .../arch/x86/snowridgex/memory.json | 202 +++++++
> .../pmu-events/arch/x86/snowridgex/other.json | 394 ------------
> .../arch/x86/tigerlake/tgl-metrics.json | 383 ++++++------
> .../arch/x86/westmereep-dp/cache.json | 32 +
> .../arch/x86/westmereep-dp/other.json | 40 --
> .../x86/westmereep-dp/virtual-memory.json | 8 +
> .../arch/x86/westmereep-sp/cache.json | 32 +
> .../arch/x86/westmereep-sp/other.json | 40 --
> .../x86/westmereep-sp/virtual-memory.json | 8 +
> .../pmu-events/arch/x86/westmereex/cache.json | 32 +
> .../pmu-events/arch/x86/westmereex/other.json | 40 --
> .../arch/x86/westmereex/virtual-memory.json | 8 +
> 124 files changed, 9983 insertions(+), 8867 deletions(-)
> delete mode 100644 tools/perf/pmu-events/arch/x86/clearwaterforest/other.json
>