[PATCH v4 00/23] Intel vendor events and TMA 5.01 metrics

Ian Rogers posted 23 patches 10 months, 1 week ago
There is a newer version of this series
.../arch/x86/alderlake/adl-metrics.json       | 3377 +++++++++---
.../pmu-events/arch/x86/alderlake/cache.json  |  292 +-
.../arch/x86/alderlake/floating-point.json    |   19 +-
.../arch/x86/alderlake/frontend.json          |   19 -
.../pmu-events/arch/x86/alderlake/memory.json |   32 +-
.../arch/x86/alderlake/metricgroups.json      |   10 +-
.../pmu-events/arch/x86/alderlake/other.json  |   92 +-
.../arch/x86/alderlake/pipeline.json          |  127 +-
.../arch/x86/alderlake/virtual-memory.json    |   33 +
.../arch/x86/alderlaken/adln-metrics.json     |   83 +-
.../pmu-events/arch/x86/alderlaken/cache.json |  227 +-
.../arch/x86/alderlaken/floating-point.json   |   17 +-
.../arch/x86/alderlaken/memory.json           |   20 +
.../pmu-events/arch/x86/alderlaken/other.json |   81 +-
.../arch/x86/alderlaken/pipeline.json         |   97 +-
.../arch/x86/alderlaken/virtual-memory.json   |   30 +
.../arch/x86/arrowlake/arl-metrics.json       | 4597 ++++++++++++++++
.../pmu-events/arch/x86/arrowlake/cache.json  | 1491 ++++++
.../arch/x86/arrowlake/floating-point.json    |  532 ++
.../arch/x86/arrowlake/frontend.json          |  609 +++
.../pmu-events/arch/x86/arrowlake/memory.json |  387 ++
.../arch/x86/arrowlake/metricgroups.json      |  150 +
.../pmu-events/arch/x86/arrowlake/other.json  |  279 +
.../arch/x86/arrowlake/pipeline.json          | 2308 +++++++++
.../arch/x86/arrowlake/uncore-cache.json      |   20 +
.../x86/arrowlake/uncore-interconnect.json    |   47 +
.../arch/x86/arrowlake/uncore-memory.json     |  160 +
.../{haswell => arrowlake}/uncore-other.json  |    0
.../arch/x86/arrowlake/virtual-memory.json    |  522 ++
.../arch/x86/broadwell/bdw-metrics.json       |  312 +-
.../pmu-events/arch/x86/broadwell/cache.json  |   10 +-
.../arch/x86/broadwell/frontend.json          |    4 +-
.../pmu-events/arch/x86/broadwell/memory.json |    8 +-
.../arch/x86/broadwell/metricgroups.json      |    5 +
.../arch/x86/broadwell/pipeline.json          |   10 +-
.../arch/x86/broadwellde/bdwde-metrics.json   |  256 +-
.../arch/x86/broadwellde/cache.json           |   10 +-
.../arch/x86/broadwellde/frontend.json        |    4 +-
.../arch/x86/broadwellde/memory.json          |    6 +-
.../arch/x86/broadwellde/metricgroups.json    |    5 +
.../arch/x86/broadwellde/pipeline.json        |   10 +-
.../arch/x86/broadwellde/uncore-cache.json    |   28 +-
.../x86/broadwellde/uncore-interconnect.json  |   16 +-
.../arch/x86/broadwellx/bdx-metrics.json      |  344 +-
.../pmu-events/arch/x86/broadwellx/cache.json |   10 +-
.../arch/x86/broadwellx/frontend.json         |    4 +-
.../arch/x86/broadwellx/memory.json           |    6 +-
.../arch/x86/broadwellx/metricgroups.json     |    5 +
.../arch/x86/broadwellx/pipeline.json         |   10 +-
.../arch/x86/broadwellx/uncore-cache.json     |   28 +-
.../x86/broadwellx/uncore-interconnect.json   |   36 +-
.../arch/x86/broadwellx/uncore-memory.json    |    1 +
.../arch/x86/cascadelakex/clx-metrics.json    |  767 +--
.../arch/x86/cascadelakex/metricgroups.json   |    9 +-
.../arch/x86/cascadelakex/uncore-cache.json   |   60 +-
.../x86/cascadelakex/uncore-interconnect.json |   11 -
.../arch/x86/clearwaterforest/cache.json      |  144 +
.../arch/x86/clearwaterforest/counter.json    |    7 +
.../arch/x86/clearwaterforest/frontend.json   |   18 +
.../arch/x86/clearwaterforest/memory.json     |   22 +
.../arch/x86/clearwaterforest/other.json      |   22 +
.../arch/x86/clearwaterforest/pipeline.json   |  113 +
.../x86/clearwaterforest/virtual-memory.json  |   29 +
.../arch/x86/emeraldrapids/cache.json         |   28 +-
.../arch/x86/emeraldrapids/emr-metrics.json   | 1036 ++--
.../arch/x86/emeraldrapids/frontend.json      |   19 -
.../arch/x86/emeraldrapids/memory.json        |   15 +-
.../arch/x86/emeraldrapids/metricgroups.json  |   10 +-
.../arch/x86/emeraldrapids/pipeline.json      |   23 -
.../arch/x86/emeraldrapids/uncore-io.json     |  218 +-
.../arch/x86/grandridge/grr-metrics.json      |  284 +-
.../arch/x86/grandridge/pipeline.json         |    3 +-
.../arch/x86/grandridge/uncore-cache.json     |    4 +-
.../x86/grandridge/uncore-interconnect.json   |   60 +
.../arch/x86/grandridge/uncore-io.json        |  214 +-
.../arch/x86/grandridge/uncore-memory.json    |    2 +-
.../arch/x86/graniterapids/cache.json         |  130 +-
.../arch/x86/graniterapids/counter.json       |   24 +-
.../arch/x86/graniterapids/frontend.json      |   24 +-
.../arch/x86/graniterapids/gnr-metrics.json   | 2313 +++++++++
.../arch/x86/graniterapids/memory.json        |  121 +-
.../arch/x86/graniterapids/metricgroups.json  |  145 +
.../arch/x86/graniterapids/other.json         |  109 +
.../arch/x86/graniterapids/pipeline.json      |   40 +-
.../arch/x86/graniterapids/uncore-cache.json  |   48 +-
.../arch/x86/graniterapids/uncore-cxl.json    |    2 -
.../graniterapids/uncore-interconnect.json    |   87 +
.../arch/x86/graniterapids/uncore-io.json     |  280 +-
.../arch/x86/graniterapids/uncore-memory.json |  122 +-
.../arch/x86/graniterapids/uncore-power.json  |   98 +
.../arch/x86/haswell/hsw-metrics.json         |  260 +-
.../pmu-events/arch/x86/haswell/memory.json   |    2 +-
.../arch/x86/haswell/metricgroups.json        |    5 +
.../arch/x86/haswellx/hsx-metrics.json        |  296 +-
.../arch/x86/haswellx/metricgroups.json       |    5 +
.../arch/x86/haswellx/uncore-cache.json       |   28 +-
.../x86/haswellx/uncore-interconnect.json     |   38 +-
.../pmu-events/arch/x86/icelake/cache.json    |   34 +-
.../pmu-events/arch/x86/icelake/frontend.json |   17 -
.../arch/x86/icelake/icl-metrics.json         |  849 +--
.../pmu-events/arch/x86/icelake/memory.json   |   13 +-
.../arch/x86/icelake/metricgroups.json        |   10 +-
.../pmu-events/arch/x86/icelake/pipeline.json |   30 +-
.../arch/x86/icelake/uncore-interconnect.json |   76 -
.../arch/x86/icelake/uncore-other.json        |    2 +-
.../arch/x86/icelake/virtual-memory.json      |   18 +
.../pmu-events/arch/x86/icelakex/cache.json   |   41 +-
.../arch/x86/icelakex/frontend.json           |   17 -
.../arch/x86/icelakex/icx-metrics.json        |  852 +--
.../pmu-events/arch/x86/icelakex/memory.json  |   13 +-
.../arch/x86/icelakex/metricgroups.json       |   10 +-
.../arch/x86/icelakex/pipeline.json           |   30 +-
.../pmu-events/arch/x86/lunarlake/cache.json  | 1352 ++++-
.../arch/x86/lunarlake/floating-point.json    |  484 ++
.../arch/x86/lunarlake/frontend.json          |  654 ++-
.../arch/x86/lunarlake/lnl-metrics.json       | 4611 +++++++++++++++++
.../pmu-events/arch/x86/lunarlake/memory.json |  262 +-
.../arch/x86/lunarlake/metricgroups.json      |  150 +
.../pmu-events/arch/x86/lunarlake/other.json  |  496 +-
.../arch/x86/lunarlake/pipeline.json          | 2105 +++++++-
.../arch/x86/lunarlake/uncore-memory.json     |   36 +
.../arch/x86/lunarlake/virtual-memory.json    |  428 ++
tools/perf/pmu-events/arch/x86/mapfile.csv    |   42 +-
.../pmu-events/arch/x86/meteorlake/cache.json |  109 +-
.../arch/x86/meteorlake/frontend.json         |   30 +-
.../arch/x86/meteorlake/memory.json           |   22 +-
.../arch/x86/meteorlake/metricgroups.json     |   10 +-
.../arch/x86/meteorlake/mtl-metrics.json      | 3552 ++++++++++---
.../pmu-events/arch/x86/meteorlake/other.json |   54 +
.../arch/x86/meteorlake/pipeline.json         |   89 +-
.../pmu-events/arch/x86/rocketlake/cache.json |   34 +-
.../arch/x86/rocketlake/frontend.json         |   17 -
.../arch/x86/rocketlake/memory.json           |   13 +-
.../arch/x86/rocketlake/metricgroups.json     |   10 +-
.../arch/x86/rocketlake/pipeline.json         |   30 +-
.../arch/x86/rocketlake/rkl-metrics.json      |  849 +--
.../x86/rocketlake/uncore-interconnect.json   |   10 -
.../arch/x86/rocketlake/uncore-other.json     |    2 +-
.../arch/x86/rocketlake/virtual-memory.json   |   18 +
.../arch/x86/sapphirerapids/cache.json        |   30 +-
.../arch/x86/sapphirerapids/frontend.json     |   19 -
.../arch/x86/sapphirerapids/memory.json       |   15 +-
.../arch/x86/sapphirerapids/metricgroups.json |   10 +-
.../arch/x86/sapphirerapids/pipeline.json     |   23 -
.../arch/x86/sapphirerapids/spr-metrics.json  |  968 ++--
.../arch/x86/sapphirerapids/uncore-io.json    |  138 +-
.../arch/x86/sierraforest/cache.json          |  130 +-
.../arch/x86/sierraforest/counter.json        |   24 +-
.../arch/x86/sierraforest/frontend.json       |    8 +
.../arch/x86/sierraforest/other.json          |   20 +
.../arch/x86/sierraforest/pipeline.json       |   46 +-
.../arch/x86/sierraforest/srf-metrics.json    |  308 +-
.../arch/x86/sierraforest/uncore-cache.json   |   61 +-
.../arch/x86/sierraforest/uncore-cxl.json     |    2 -
.../x86/sierraforest/uncore-interconnect.json |   87 +
.../arch/x86/sierraforest/uncore-io.json      |  280 +-
.../arch/x86/sierraforest/uncore-memory.json  |  122 +-
.../arch/x86/sierraforest/uncore-power.json   |   98 +
.../arch/x86/skylake/metricgroups.json        |    9 +-
.../arch/x86/skylake/skl-metrics.json         |  684 ++-
.../arch/x86/skylakex/metricgroups.json       |    9 +-
.../arch/x86/skylakex/skx-metrics.json        |  740 +--
.../arch/x86/skylakex/uncore-cache.json       |   60 +-
.../x86/skylakex/uncore-interconnect.json     |   11 -
.../pmu-events/arch/x86/tigerlake/cache.json  |   45 +-
.../arch/x86/tigerlake/frontend.json          |   17 -
.../pmu-events/arch/x86/tigerlake/memory.json |   13 +-
.../arch/x86/tigerlake/metricgroups.json      |   10 +-
.../arch/x86/tigerlake/pipeline.json          |   30 +-
.../arch/x86/tigerlake/tgl-metrics.json       |  745 +--
.../x86/tigerlake/uncore-interconnect.json    |    4 +-
.../arch/x86/tigerlake/uncore-other.json      |    2 +-
.../arch/x86/tigerlake/virtual-memory.json    |   18 +
173 files changed, 38474 insertions(+), 7874 deletions(-)
create mode 100644 tools/perf/pmu-events/arch/x86/arrowlake/arl-metrics.json
create mode 100644 tools/perf/pmu-events/arch/x86/arrowlake/cache.json
create mode 100644 tools/perf/pmu-events/arch/x86/arrowlake/floating-point.json
create mode 100644 tools/perf/pmu-events/arch/x86/arrowlake/frontend.json
create mode 100644 tools/perf/pmu-events/arch/x86/arrowlake/memory.json
create mode 100644 tools/perf/pmu-events/arch/x86/arrowlake/metricgroups.json
create mode 100644 tools/perf/pmu-events/arch/x86/arrowlake/other.json
create mode 100644 tools/perf/pmu-events/arch/x86/arrowlake/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/x86/arrowlake/uncore-cache.json
create mode 100644 tools/perf/pmu-events/arch/x86/arrowlake/uncore-interconnect.json
create mode 100644 tools/perf/pmu-events/arch/x86/arrowlake/uncore-memory.json
rename tools/perf/pmu-events/arch/x86/{haswell => arrowlake}/uncore-other.json (100%)
create mode 100644 tools/perf/pmu-events/arch/x86/arrowlake/virtual-memory.json
create mode 100644 tools/perf/pmu-events/arch/x86/clearwaterforest/cache.json
create mode 100644 tools/perf/pmu-events/arch/x86/clearwaterforest/counter.json
create mode 100644 tools/perf/pmu-events/arch/x86/clearwaterforest/frontend.json
create mode 100644 tools/perf/pmu-events/arch/x86/clearwaterforest/memory.json
create mode 100644 tools/perf/pmu-events/arch/x86/clearwaterforest/other.json
create mode 100644 tools/perf/pmu-events/arch/x86/clearwaterforest/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/x86/clearwaterforest/virtual-memory.json
create mode 100644 tools/perf/pmu-events/arch/x86/graniterapids/gnr-metrics.json
create mode 100644 tools/perf/pmu-events/arch/x86/graniterapids/metricgroups.json
create mode 100644 tools/perf/pmu-events/arch/x86/lunarlake/floating-point.json
create mode 100644 tools/perf/pmu-events/arch/x86/lunarlake/lnl-metrics.json
create mode 100644 tools/perf/pmu-events/arch/x86/lunarlake/metricgroups.json
create mode 100644 tools/perf/pmu-events/arch/x86/lunarlake/uncore-memory.json
[PATCH v4 00/23] Intel vendor events and TMA 5.01 metrics
Posted by Ian Rogers 10 months, 1 week ago
Update the Intel vendor events to the latest.
Update the metrics to TMA 5.01.
Add Arrowlake and Clearwaterforest support.
Add metrics for LNL and GNR.
Address IIO uncore issue spotted on EMR, GRR, GNR, SPR and SRF.

The perf json was generated using the script:
https://github.com/intel/perfmon/blob/main/scripts/create_perf_json.py
with the generated json being in:
https://github.com/intel/perfmon/tree/main/scripts/perf

Thanks to Perry Taylor <perry.taylor@intel.com>, Caleb Biggers
<caleb.biggers@intel.com>, Edward Baker <edward.baker@intel.com> and
Weilin Wang <weilin.wang@intel.com> for helping get this patch series
together.

v4: Fix TSC events on hybrid mistakenly specifying the core PMU
    inhibiting the use of the msr PMU.
v3: Fixes for hybrid metrics that were missing PMU. Update to the
    latest events.
v2: Fix hybrid and Co-authored-by tag issues reported by
    Arnaldo. Updates to Lunarlake and Meteorlake events. Addition of
    Clearwaterforest.

Ian Rogers (23):
  perf vendor events: Update Alderlake events/metrics
  perf vendor events: Update AlderlakeN events/metrics
  perf vendor events: Add Arrowlake events/metrics
  perf vendor events: Update Broadwell events/metrics
  perf vendor events: Update BroadwellDE events/metrics
  perf vendor events: Update BroadwellX events/metrics
  perf vendor events: Update CascadelakeX events/metrics
  perf vendor events: Add Clearwaterforest events
  perf vendor events: Update EmeraldRapids events/metrics
  perf vendor events: Update GrandRidge events/metrics
  perf vendor events: Update/add Graniterapids events/metrics
  perf vendor events: Update Haswell events/metrics
  perf vendor events: Update HaswellX events/metrics
  perf vendor events: Update Icelake events/metrics
  perf vendor events: Update IcelakeX events/metrics
  perf vendor events: Update/add Lunarlake events/metrics
  perf vendor events: Update Meteorlake events/metrics
  perf vendor events: Update Rocketlake events/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 Tigerlake events/metrics

 .../arch/x86/alderlake/adl-metrics.json       | 3377 +++++++++---
 .../pmu-events/arch/x86/alderlake/cache.json  |  292 +-
 .../arch/x86/alderlake/floating-point.json    |   19 +-
 .../arch/x86/alderlake/frontend.json          |   19 -
 .../pmu-events/arch/x86/alderlake/memory.json |   32 +-
 .../arch/x86/alderlake/metricgroups.json      |   10 +-
 .../pmu-events/arch/x86/alderlake/other.json  |   92 +-
 .../arch/x86/alderlake/pipeline.json          |  127 +-
 .../arch/x86/alderlake/virtual-memory.json    |   33 +
 .../arch/x86/alderlaken/adln-metrics.json     |   83 +-
 .../pmu-events/arch/x86/alderlaken/cache.json |  227 +-
 .../arch/x86/alderlaken/floating-point.json   |   17 +-
 .../arch/x86/alderlaken/memory.json           |   20 +
 .../pmu-events/arch/x86/alderlaken/other.json |   81 +-
 .../arch/x86/alderlaken/pipeline.json         |   97 +-
 .../arch/x86/alderlaken/virtual-memory.json   |   30 +
 .../arch/x86/arrowlake/arl-metrics.json       | 4597 ++++++++++++++++
 .../pmu-events/arch/x86/arrowlake/cache.json  | 1491 ++++++
 .../arch/x86/arrowlake/floating-point.json    |  532 ++
 .../arch/x86/arrowlake/frontend.json          |  609 +++
 .../pmu-events/arch/x86/arrowlake/memory.json |  387 ++
 .../arch/x86/arrowlake/metricgroups.json      |  150 +
 .../pmu-events/arch/x86/arrowlake/other.json  |  279 +
 .../arch/x86/arrowlake/pipeline.json          | 2308 +++++++++
 .../arch/x86/arrowlake/uncore-cache.json      |   20 +
 .../x86/arrowlake/uncore-interconnect.json    |   47 +
 .../arch/x86/arrowlake/uncore-memory.json     |  160 +
 .../{haswell => arrowlake}/uncore-other.json  |    0
 .../arch/x86/arrowlake/virtual-memory.json    |  522 ++
 .../arch/x86/broadwell/bdw-metrics.json       |  312 +-
 .../pmu-events/arch/x86/broadwell/cache.json  |   10 +-
 .../arch/x86/broadwell/frontend.json          |    4 +-
 .../pmu-events/arch/x86/broadwell/memory.json |    8 +-
 .../arch/x86/broadwell/metricgroups.json      |    5 +
 .../arch/x86/broadwell/pipeline.json          |   10 +-
 .../arch/x86/broadwellde/bdwde-metrics.json   |  256 +-
 .../arch/x86/broadwellde/cache.json           |   10 +-
 .../arch/x86/broadwellde/frontend.json        |    4 +-
 .../arch/x86/broadwellde/memory.json          |    6 +-
 .../arch/x86/broadwellde/metricgroups.json    |    5 +
 .../arch/x86/broadwellde/pipeline.json        |   10 +-
 .../arch/x86/broadwellde/uncore-cache.json    |   28 +-
 .../x86/broadwellde/uncore-interconnect.json  |   16 +-
 .../arch/x86/broadwellx/bdx-metrics.json      |  344 +-
 .../pmu-events/arch/x86/broadwellx/cache.json |   10 +-
 .../arch/x86/broadwellx/frontend.json         |    4 +-
 .../arch/x86/broadwellx/memory.json           |    6 +-
 .../arch/x86/broadwellx/metricgroups.json     |    5 +
 .../arch/x86/broadwellx/pipeline.json         |   10 +-
 .../arch/x86/broadwellx/uncore-cache.json     |   28 +-
 .../x86/broadwellx/uncore-interconnect.json   |   36 +-
 .../arch/x86/broadwellx/uncore-memory.json    |    1 +
 .../arch/x86/cascadelakex/clx-metrics.json    |  767 +--
 .../arch/x86/cascadelakex/metricgroups.json   |    9 +-
 .../arch/x86/cascadelakex/uncore-cache.json   |   60 +-
 .../x86/cascadelakex/uncore-interconnect.json |   11 -
 .../arch/x86/clearwaterforest/cache.json      |  144 +
 .../arch/x86/clearwaterforest/counter.json    |    7 +
 .../arch/x86/clearwaterforest/frontend.json   |   18 +
 .../arch/x86/clearwaterforest/memory.json     |   22 +
 .../arch/x86/clearwaterforest/other.json      |   22 +
 .../arch/x86/clearwaterforest/pipeline.json   |  113 +
 .../x86/clearwaterforest/virtual-memory.json  |   29 +
 .../arch/x86/emeraldrapids/cache.json         |   28 +-
 .../arch/x86/emeraldrapids/emr-metrics.json   | 1036 ++--
 .../arch/x86/emeraldrapids/frontend.json      |   19 -
 .../arch/x86/emeraldrapids/memory.json        |   15 +-
 .../arch/x86/emeraldrapids/metricgroups.json  |   10 +-
 .../arch/x86/emeraldrapids/pipeline.json      |   23 -
 .../arch/x86/emeraldrapids/uncore-io.json     |  218 +-
 .../arch/x86/grandridge/grr-metrics.json      |  284 +-
 .../arch/x86/grandridge/pipeline.json         |    3 +-
 .../arch/x86/grandridge/uncore-cache.json     |    4 +-
 .../x86/grandridge/uncore-interconnect.json   |   60 +
 .../arch/x86/grandridge/uncore-io.json        |  214 +-
 .../arch/x86/grandridge/uncore-memory.json    |    2 +-
 .../arch/x86/graniterapids/cache.json         |  130 +-
 .../arch/x86/graniterapids/counter.json       |   24 +-
 .../arch/x86/graniterapids/frontend.json      |   24 +-
 .../arch/x86/graniterapids/gnr-metrics.json   | 2313 +++++++++
 .../arch/x86/graniterapids/memory.json        |  121 +-
 .../arch/x86/graniterapids/metricgroups.json  |  145 +
 .../arch/x86/graniterapids/other.json         |  109 +
 .../arch/x86/graniterapids/pipeline.json      |   40 +-
 .../arch/x86/graniterapids/uncore-cache.json  |   48 +-
 .../arch/x86/graniterapids/uncore-cxl.json    |    2 -
 .../graniterapids/uncore-interconnect.json    |   87 +
 .../arch/x86/graniterapids/uncore-io.json     |  280 +-
 .../arch/x86/graniterapids/uncore-memory.json |  122 +-
 .../arch/x86/graniterapids/uncore-power.json  |   98 +
 .../arch/x86/haswell/hsw-metrics.json         |  260 +-
 .../pmu-events/arch/x86/haswell/memory.json   |    2 +-
 .../arch/x86/haswell/metricgroups.json        |    5 +
 .../arch/x86/haswellx/hsx-metrics.json        |  296 +-
 .../arch/x86/haswellx/metricgroups.json       |    5 +
 .../arch/x86/haswellx/uncore-cache.json       |   28 +-
 .../x86/haswellx/uncore-interconnect.json     |   38 +-
 .../pmu-events/arch/x86/icelake/cache.json    |   34 +-
 .../pmu-events/arch/x86/icelake/frontend.json |   17 -
 .../arch/x86/icelake/icl-metrics.json         |  849 +--
 .../pmu-events/arch/x86/icelake/memory.json   |   13 +-
 .../arch/x86/icelake/metricgroups.json        |   10 +-
 .../pmu-events/arch/x86/icelake/pipeline.json |   30 +-
 .../arch/x86/icelake/uncore-interconnect.json |   76 -
 .../arch/x86/icelake/uncore-other.json        |    2 +-
 .../arch/x86/icelake/virtual-memory.json      |   18 +
 .../pmu-events/arch/x86/icelakex/cache.json   |   41 +-
 .../arch/x86/icelakex/frontend.json           |   17 -
 .../arch/x86/icelakex/icx-metrics.json        |  852 +--
 .../pmu-events/arch/x86/icelakex/memory.json  |   13 +-
 .../arch/x86/icelakex/metricgroups.json       |   10 +-
 .../arch/x86/icelakex/pipeline.json           |   30 +-
 .../pmu-events/arch/x86/lunarlake/cache.json  | 1352 ++++-
 .../arch/x86/lunarlake/floating-point.json    |  484 ++
 .../arch/x86/lunarlake/frontend.json          |  654 ++-
 .../arch/x86/lunarlake/lnl-metrics.json       | 4611 +++++++++++++++++
 .../pmu-events/arch/x86/lunarlake/memory.json |  262 +-
 .../arch/x86/lunarlake/metricgroups.json      |  150 +
 .../pmu-events/arch/x86/lunarlake/other.json  |  496 +-
 .../arch/x86/lunarlake/pipeline.json          | 2105 +++++++-
 .../arch/x86/lunarlake/uncore-memory.json     |   36 +
 .../arch/x86/lunarlake/virtual-memory.json    |  428 ++
 tools/perf/pmu-events/arch/x86/mapfile.csv    |   42 +-
 .../pmu-events/arch/x86/meteorlake/cache.json |  109 +-
 .../arch/x86/meteorlake/frontend.json         |   30 +-
 .../arch/x86/meteorlake/memory.json           |   22 +-
 .../arch/x86/meteorlake/metricgroups.json     |   10 +-
 .../arch/x86/meteorlake/mtl-metrics.json      | 3552 ++++++++++---
 .../pmu-events/arch/x86/meteorlake/other.json |   54 +
 .../arch/x86/meteorlake/pipeline.json         |   89 +-
 .../pmu-events/arch/x86/rocketlake/cache.json |   34 +-
 .../arch/x86/rocketlake/frontend.json         |   17 -
 .../arch/x86/rocketlake/memory.json           |   13 +-
 .../arch/x86/rocketlake/metricgroups.json     |   10 +-
 .../arch/x86/rocketlake/pipeline.json         |   30 +-
 .../arch/x86/rocketlake/rkl-metrics.json      |  849 +--
 .../x86/rocketlake/uncore-interconnect.json   |   10 -
 .../arch/x86/rocketlake/uncore-other.json     |    2 +-
 .../arch/x86/rocketlake/virtual-memory.json   |   18 +
 .../arch/x86/sapphirerapids/cache.json        |   30 +-
 .../arch/x86/sapphirerapids/frontend.json     |   19 -
 .../arch/x86/sapphirerapids/memory.json       |   15 +-
 .../arch/x86/sapphirerapids/metricgroups.json |   10 +-
 .../arch/x86/sapphirerapids/pipeline.json     |   23 -
 .../arch/x86/sapphirerapids/spr-metrics.json  |  968 ++--
 .../arch/x86/sapphirerapids/uncore-io.json    |  138 +-
 .../arch/x86/sierraforest/cache.json          |  130 +-
 .../arch/x86/sierraforest/counter.json        |   24 +-
 .../arch/x86/sierraforest/frontend.json       |    8 +
 .../arch/x86/sierraforest/other.json          |   20 +
 .../arch/x86/sierraforest/pipeline.json       |   46 +-
 .../arch/x86/sierraforest/srf-metrics.json    |  308 +-
 .../arch/x86/sierraforest/uncore-cache.json   |   61 +-
 .../arch/x86/sierraforest/uncore-cxl.json     |    2 -
 .../x86/sierraforest/uncore-interconnect.json |   87 +
 .../arch/x86/sierraforest/uncore-io.json      |  280 +-
 .../arch/x86/sierraforest/uncore-memory.json  |  122 +-
 .../arch/x86/sierraforest/uncore-power.json   |   98 +
 .../arch/x86/skylake/metricgroups.json        |    9 +-
 .../arch/x86/skylake/skl-metrics.json         |  684 ++-
 .../arch/x86/skylakex/metricgroups.json       |    9 +-
 .../arch/x86/skylakex/skx-metrics.json        |  740 +--
 .../arch/x86/skylakex/uncore-cache.json       |   60 +-
 .../x86/skylakex/uncore-interconnect.json     |   11 -
 .../pmu-events/arch/x86/tigerlake/cache.json  |   45 +-
 .../arch/x86/tigerlake/frontend.json          |   17 -
 .../pmu-events/arch/x86/tigerlake/memory.json |   13 +-
 .../arch/x86/tigerlake/metricgroups.json      |   10 +-
 .../arch/x86/tigerlake/pipeline.json          |   30 +-
 .../arch/x86/tigerlake/tgl-metrics.json       |  745 +--
 .../x86/tigerlake/uncore-interconnect.json    |    4 +-
 .../arch/x86/tigerlake/uncore-other.json      |    2 +-
 .../arch/x86/tigerlake/virtual-memory.json    |   18 +
 173 files changed, 38474 insertions(+), 7874 deletions(-)
 create mode 100644 tools/perf/pmu-events/arch/x86/arrowlake/arl-metrics.json
 create mode 100644 tools/perf/pmu-events/arch/x86/arrowlake/cache.json
 create mode 100644 tools/perf/pmu-events/arch/x86/arrowlake/floating-point.json
 create mode 100644 tools/perf/pmu-events/arch/x86/arrowlake/frontend.json
 create mode 100644 tools/perf/pmu-events/arch/x86/arrowlake/memory.json
 create mode 100644 tools/perf/pmu-events/arch/x86/arrowlake/metricgroups.json
 create mode 100644 tools/perf/pmu-events/arch/x86/arrowlake/other.json
 create mode 100644 tools/perf/pmu-events/arch/x86/arrowlake/pipeline.json
 create mode 100644 tools/perf/pmu-events/arch/x86/arrowlake/uncore-cache.json
 create mode 100644 tools/perf/pmu-events/arch/x86/arrowlake/uncore-interconnect.json
 create mode 100644 tools/perf/pmu-events/arch/x86/arrowlake/uncore-memory.json
 rename tools/perf/pmu-events/arch/x86/{haswell => arrowlake}/uncore-other.json (100%)
 create mode 100644 tools/perf/pmu-events/arch/x86/arrowlake/virtual-memory.json
 create mode 100644 tools/perf/pmu-events/arch/x86/clearwaterforest/cache.json
 create mode 100644 tools/perf/pmu-events/arch/x86/clearwaterforest/counter.json
 create mode 100644 tools/perf/pmu-events/arch/x86/clearwaterforest/frontend.json
 create mode 100644 tools/perf/pmu-events/arch/x86/clearwaterforest/memory.json
 create mode 100644 tools/perf/pmu-events/arch/x86/clearwaterforest/other.json
 create mode 100644 tools/perf/pmu-events/arch/x86/clearwaterforest/pipeline.json
 create mode 100644 tools/perf/pmu-events/arch/x86/clearwaterforest/virtual-memory.json
 create mode 100644 tools/perf/pmu-events/arch/x86/graniterapids/gnr-metrics.json
 create mode 100644 tools/perf/pmu-events/arch/x86/graniterapids/metricgroups.json
 create mode 100644 tools/perf/pmu-events/arch/x86/lunarlake/floating-point.json
 create mode 100644 tools/perf/pmu-events/arch/x86/lunarlake/lnl-metrics.json
 create mode 100644 tools/perf/pmu-events/arch/x86/lunarlake/metricgroups.json
 create mode 100644 tools/perf/pmu-events/arch/x86/lunarlake/uncore-memory.json

-- 
2.48.1.362.g079036d154-goog
Re: [PATCH v4 00/23] Intel vendor events and TMA 5.01 metrics
Posted by Ian Rogers 10 months, 1 week ago
On Tue, Feb 4, 2025 at 1:33 PM Ian Rogers <irogers@google.com> wrote:
>
> Update the Intel vendor events to the latest.
> Update the metrics to TMA 5.01.
> Add Arrowlake and Clearwaterforest support.
> Add metrics for LNL and GNR.
> Address IIO uncore issue spotted on EMR, GRR, GNR, SPR and SRF.
>
> The perf json was generated using the script:
> https://github.com/intel/perfmon/blob/main/scripts/create_perf_json.py
> with the generated json being in:
> https://github.com/intel/perfmon/tree/main/scripts/perf
>
> Thanks to Perry Taylor <perry.taylor@intel.com>, Caleb Biggers
> <caleb.biggers@intel.com>, Edward Baker <edward.baker@intel.com> and
> Weilin Wang <weilin.wang@intel.com> for helping get this patch series
> together.
>
> v4: Fix TSC events on hybrid mistakenly specifying the core PMU
>     inhibiting the use of the msr PMU.
> v3: Fixes for hybrid metrics that were missing PMU. Update to the
>     latest events.
> v2: Fix hybrid and Co-authored-by tag issues reported by
>     Arnaldo. Updates to Lunarlake and Meteorlake events. Addition of
>     Clearwaterforest.

Sorry, forgot to add Thomas again.
https://lore.kernel.org/lkml/20250204213259.127939-1-irogers@google.com/

Thanks,
Ian
Re: [PATCH v4 00/23] Intel vendor events and TMA 5.01 metrics
Posted by Falcon, Thomas 10 months, 1 week ago
On Tue, 2025-02-04 at 13:35 -0800, Ian Rogers wrote:
> On Tue, Feb 4, 2025 at 1:33 PM Ian Rogers <irogers@google.com> wrote:
> > 
> > Update the Intel vendor events to the latest.
> > Update the metrics to TMA 5.01.
> > Add Arrowlake and Clearwaterforest support.
> > Add metrics for LNL and GNR.
> > Address IIO uncore issue spotted on EMR, GRR, GNR, SPR and SRF.
> > 
> > The perf json was generated using the script:
> > https://github.com/intel/perfmon/blob/main/scripts/create_perf_json.py
> > with the generated json being in:
> > https://github.com/intel/perfmon/tree/main/scripts/perf
> > 
> > Thanks to Perry Taylor <perry.taylor@intel.com>, Caleb Biggers
> > <caleb.biggers@intel.com>, Edward Baker <edward.baker@intel.com>
> > and
> > Weilin Wang <weilin.wang@intel.com> for helping get this patch
> > series
> > together.
> > 
> > v4: Fix TSC events on hybrid mistakenly specifying the core PMU
> >     inhibiting the use of the msr PMU.
> > v3: Fixes for hybrid metrics that were missing PMU. Update to the
> >     latest events.
> > v2: Fix hybrid and Co-authored-by tag issues reported by
> >     Arnaldo. Updates to Lunarlake and Meteorlake events. Addition
> > of
> >     Clearwaterforest.
> 
> Sorry, forgot to add Thomas again.
> https://lore.kernel.org/lkml/20250204213259.127939-1-irogers@google.com/

Hi, I'm seeing some warnings like this and the all metrics test is
skipped:

Testing tma_info_inst_mix_iparith
FP issues
Cannot resolve IDs for tma_info_inst_mix_iparith:
cpu_core@INST_RETIRED.ANY@ / (cpu_core@FP_ARITH_INST_RETIRED.SCALAR@ +
cpu_core@FP_ARITH_INST_RETIRED.VECTOR@)
Testing tma_info_inst_mix_iparith_avx128
FP issues
Cannot resolve IDs for tma_info_inst_mix_iparith_avx128:
cpu_core@INST_RETIRED.ANY@ /
(cpu_core@FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE@ +
cpu_core@FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE@)
Testing tma_info_inst_mix_iparith_avx256
FP issues
Cannot resolve IDs for tma_info_inst_mix_iparith_avx256:
cpu_core@INST_RETIRED.ANY@ /
(cpu_core@FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE@ +
cpu_core@FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE@)
Testing tma_info_inst_mix_iparith_scalar_dp
FP issues
Cannot resolve IDs for tma_info_inst_mix_iparith_scalar_dp:
cpu_core@INST_RETIRED.ANY@ /
cpu_core@FP_ARITH_INST_RETIRED.SCALAR_DOUBLE@
Testing tma_info_inst_mix_iparith_scalar_sp
FP issues
Cannot resolve IDs for tma_info_inst_mix_iparith_scalar_sp:
cpu_core@INST_RETIRED.ANY@ /
cpu_core@FP_ARITH_INST_RETIRED.SCALAR_SINGLE@

Thanks,
Tom
> 
> Thanks,
> Ian

Re: [PATCH v4 00/23] Intel vendor events and TMA 5.01 metrics
Posted by Ian Rogers 10 months, 1 week ago
On Tue, Feb 4, 2025 at 8:28 PM Falcon, Thomas <thomas.falcon@intel.com> wrote:
>
> On Tue, 2025-02-04 at 13:35 -0800, Ian Rogers wrote:
> > On Tue, Feb 4, 2025 at 1:33 PM Ian Rogers <irogers@google.com> wrote:
> > >
> > > Update the Intel vendor events to the latest.
> > > Update the metrics to TMA 5.01.
> > > Add Arrowlake and Clearwaterforest support.
> > > Add metrics for LNL and GNR.
> > > Address IIO uncore issue spotted on EMR, GRR, GNR, SPR and SRF.
> > >
> > > The perf json was generated using the script:
> > > https://github.com/intel/perfmon/blob/main/scripts/create_perf_json.py
> > > with the generated json being in:
> > > https://github.com/intel/perfmon/tree/main/scripts/perf
> > >
> > > Thanks to Perry Taylor <perry.taylor@intel.com>, Caleb Biggers
> > > <caleb.biggers@intel.com>, Edward Baker <edward.baker@intel.com>
> > > and
> > > Weilin Wang <weilin.wang@intel.com> for helping get this patch
> > > series
> > > together.
> > >
> > > v4: Fix TSC events on hybrid mistakenly specifying the core PMU
> > >     inhibiting the use of the msr PMU.
> > > v3: Fixes for hybrid metrics that were missing PMU. Update to the
> > >     latest events.
> > > v2: Fix hybrid and Co-authored-by tag issues reported by
> > >     Arnaldo. Updates to Lunarlake and Meteorlake events. Addition
> > > of
> > >     Clearwaterforest.
> >
> > Sorry, forgot to add Thomas again.
> > https://lore.kernel.org/lkml/20250204213259.127939-1-irogers@google.com/
>
> Hi, I'm seeing some warnings like this and the all metrics test is
> skipped:
>
> Testing tma_info_inst_mix_iparith
> FP issues
> Cannot resolve IDs for tma_info_inst_mix_iparith:
> cpu_core@INST_RETIRED.ANY@ / (cpu_core@FP_ARITH_INST_RETIRED.SCALAR@ +
> cpu_core@FP_ARITH_INST_RETIRED.VECTOR@)
> Testing tma_info_inst_mix_iparith_avx128
> FP issues
> Cannot resolve IDs for tma_info_inst_mix_iparith_avx128:
> cpu_core@INST_RETIRED.ANY@ /
> (cpu_core@FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE@ +
> cpu_core@FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE@)
> Testing tma_info_inst_mix_iparith_avx256
> FP issues
> Cannot resolve IDs for tma_info_inst_mix_iparith_avx256:
> cpu_core@INST_RETIRED.ANY@ /
> (cpu_core@FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE@ +
> cpu_core@FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE@)
> Testing tma_info_inst_mix_iparith_scalar_dp
> FP issues
> Cannot resolve IDs for tma_info_inst_mix_iparith_scalar_dp:
> cpu_core@INST_RETIRED.ANY@ /
> cpu_core@FP_ARITH_INST_RETIRED.SCALAR_DOUBLE@
> Testing tma_info_inst_mix_iparith_scalar_sp
> FP issues
> Cannot resolve IDs for tma_info_inst_mix_iparith_scalar_sp:
> cpu_core@INST_RETIRED.ANY@ /
> cpu_core@FP_ARITH_INST_RETIRED.SCALAR_SINGLE@

Thanks Tom, we've gone from a fail to skip - so progress! I think it
actually isn't something to worry about. These metrics are measuring
vector and floating point things. We run a workload, when testing the
metrics, that doesn't have floating point and vector operations. This
causes issues with metrics for these instructions as the counters
don't count anything. Because of this I added some logic to just skip
when we see these failures:
https://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git/tree/tools/perf/tests/shell/stat_all_metrics.sh?h=perf-tools-next#n51
but a better fix would be to have a workload with FP and AMX operations.

You could test these metrics work manually, by running something like:
$ perf stat -M tma_info_inst_mix_iparith <benchmark>
where <benchmark> would need to contain FP or AMX instructions.

Thanks,
Ian
Re: [PATCH v4 00/23] Intel vendor events and TMA 5.01 metrics
Posted by Liang, Kan 10 months, 1 week ago

On 2025-02-04 11:58 p.m., Ian Rogers wrote:
> On Tue, Feb 4, 2025 at 8:28 PM Falcon, Thomas <thomas.falcon@intel.com> wrote:
>>
>> On Tue, 2025-02-04 at 13:35 -0800, Ian Rogers wrote:
>>> On Tue, Feb 4, 2025 at 1:33 PM Ian Rogers <irogers@google.com> wrote:
>>>>
>>>> Update the Intel vendor events to the latest.
>>>> Update the metrics to TMA 5.01.
>>>> Add Arrowlake and Clearwaterforest support.
>>>> Add metrics for LNL and GNR.
>>>> Address IIO uncore issue spotted on EMR, GRR, GNR, SPR and SRF.
>>>>
>>>> The perf json was generated using the script:
>>>> https://github.com/intel/perfmon/blob/main/scripts/create_perf_json.py
>>>> with the generated json being in:
>>>> https://github.com/intel/perfmon/tree/main/scripts/perf
>>>>
>>>> Thanks to Perry Taylor <perry.taylor@intel.com>, Caleb Biggers
>>>> <caleb.biggers@intel.com>, Edward Baker <edward.baker@intel.com>
>>>> and
>>>> Weilin Wang <weilin.wang@intel.com> for helping get this patch
>>>> series
>>>> together.
>>>>
>>>> v4: Fix TSC events on hybrid mistakenly specifying the core PMU
>>>>     inhibiting the use of the msr PMU.
>>>> v3: Fixes for hybrid metrics that were missing PMU. Update to the
>>>>     latest events.
>>>> v2: Fix hybrid and Co-authored-by tag issues reported by
>>>>     Arnaldo. Updates to Lunarlake and Meteorlake events. Addition
>>>> of
>>>>     Clearwaterforest.
>>>
>>> Sorry, forgot to add Thomas again.
>>> https://lore.kernel.org/lkml/20250204213259.127939-1-irogers@google.com/
>>
>> Hi, I'm seeing some warnings like this and the all metrics test is
>> skipped:
>>
>> Testing tma_info_inst_mix_iparith
>> FP issues
>> Cannot resolve IDs for tma_info_inst_mix_iparith:
>> cpu_core@INST_RETIRED.ANY@ / (cpu_core@FP_ARITH_INST_RETIRED.SCALAR@ +
>> cpu_core@FP_ARITH_INST_RETIRED.VECTOR@)
>> Testing tma_info_inst_mix_iparith_avx128
>> FP issues
>> Cannot resolve IDs for tma_info_inst_mix_iparith_avx128:
>> cpu_core@INST_RETIRED.ANY@ /
>> (cpu_core@FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE@ +
>> cpu_core@FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE@)
>> Testing tma_info_inst_mix_iparith_avx256
>> FP issues
>> Cannot resolve IDs for tma_info_inst_mix_iparith_avx256:
>> cpu_core@INST_RETIRED.ANY@ /
>> (cpu_core@FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE@ +
>> cpu_core@FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE@)
>> Testing tma_info_inst_mix_iparith_scalar_dp
>> FP issues
>> Cannot resolve IDs for tma_info_inst_mix_iparith_scalar_dp:
>> cpu_core@INST_RETIRED.ANY@ /
>> cpu_core@FP_ARITH_INST_RETIRED.SCALAR_DOUBLE@
>> Testing tma_info_inst_mix_iparith_scalar_sp
>> FP issues
>> Cannot resolve IDs for tma_info_inst_mix_iparith_scalar_sp:
>> cpu_core@INST_RETIRED.ANY@ /
>> cpu_core@FP_ARITH_INST_RETIRED.SCALAR_SINGLE@
> 
> Thanks Tom, we've gone from a fail to skip - so progress! I think it
> actually isn't something to worry about. These metrics are measuring
> vector and floating point things. We run a workload, when testing the
> metrics, that doesn't have floating point and vector operations. This
> causes issues with metrics for these instructions as the counters
> don't count anything. Because of this I added some logic to just skip
> when we see these failures:
> https://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git/tree/tools/perf/tests/shell/stat_all_metrics.sh?h=perf-tools-next#n51
> but a better fix would be to have a workload with FP and AMX operations.
> 
> You could test these metrics work manually, by running something like:
> $ perf stat -M tma_info_inst_mix_iparith <benchmark>
> where <benchmark> would need to contain FP or AMX instructions.
> 

It should be OK to skip the "FP issues", but the "Cannot resolve IDs"
seems a different issue.

I found the similar error when I run perf stat on my Arrow Lake machine.

$ sudo ./perf stat
Cannot resolve IDs for tma_memory_bound: topdown\-mem\-bound /
(topdown\-fe\-bound + topdown\-bad\-spec + topdown\-retiring +
topdown\-be\-bound) + 0 * slots

I think the warning is because perf doesn't find all the matched events.
https://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git/tree/tools/perf/util/metricgroup.c?h=tmp.perf-tools-next#n326


Then I go to check the event list of tma_memory_bound.
For cpu_atom, it requires slots and topdown-mem-bound, which should be
only available on p-core.

+    {
+        "BriefDescription": "This metric represents fraction of slots
the Memory subsystem within the Backend was a bottleneck",
+        "DefaultMetricgroupName": "TopdownL2",
+        "MetricExpr": "topdown\\-mem\\-bound / (topdown\\-fe\\-bound +
topdown\\-bad\\-spec + topdown\\-retiring + topdown\\-be\\-bound) + 0 *
slots",
+        "MetricGroup":
"Backend;Default;Slots;TmaL2;TopdownL2;tma_L2_group;tma_backend_bound_group",
+        "MetricName": "tma_memory_bound",
+        "MetricThreshold": "tma_memory_bound > 0.2 & tma_backend_bound
> 0.2",
+        "MetricgroupNoGroup": "TopdownL2;Default",
+        "PublicDescription": "This metric represents fraction of slots
the Memory subsystem within the Backend was a bottleneck.  Memory Bound
estimates fraction of slots where pipeline is likely stalled due to
demand load or store instructions. This accounts mainly for (1)
non-completed in-flight memory demand loads which coincides with
execution units starvation; in addition to (2) cases where stores could
impose backpressure on the pipeline when many of them get buffered at
the same time (less common out of the two)",
+        "ScaleUnit": "100%",
+        "Unit": "cpu_atom"
+    },

I didn't check the tma_info_inst_mix_iparith which Thomas mentioned
above yet. But I suspect it should be the same issue.

The perf test may have to error out when the "Cannot resolve IDs"
message is detected.

Thanks,
Kan

Re: [PATCH v4 00/23] Intel vendor events and TMA 5.01 metrics
Posted by Ian Rogers 10 months, 1 week ago
On Wed, Feb 5, 2025 at 7:47 AM Liang, Kan <kan.liang@linux.intel.com> wrote:
>
> On 2025-02-04 11:58 p.m., Ian Rogers wrote:
> > On Tue, Feb 4, 2025 at 8:28 PM Falcon, Thomas <thomas.falcon@intel.com> wrote:
> >>
> >> On Tue, 2025-02-04 at 13:35 -0800, Ian Rogers wrote:
> >>> On Tue, Feb 4, 2025 at 1:33 PM Ian Rogers <irogers@google.com> wrote:
> >>>>
> >>>> Update the Intel vendor events to the latest.
> >>>> Update the metrics to TMA 5.01.
> >>>> Add Arrowlake and Clearwaterforest support.
> >>>> Add metrics for LNL and GNR.
> >>>> Address IIO uncore issue spotted on EMR, GRR, GNR, SPR and SRF.
> >>>>
> >>>> The perf json was generated using the script:
> >>>> https://github.com/intel/perfmon/blob/main/scripts/create_perf_json.py
> >>>> with the generated json being in:
> >>>> https://github.com/intel/perfmon/tree/main/scripts/perf
> >>>>
> >>>> Thanks to Perry Taylor <perry.taylor@intel.com>, Caleb Biggers
> >>>> <caleb.biggers@intel.com>, Edward Baker <edward.baker@intel.com>
> >>>> and
> >>>> Weilin Wang <weilin.wang@intel.com> for helping get this patch
> >>>> series
> >>>> together.
> >>>>
> >>>> v4: Fix TSC events on hybrid mistakenly specifying the core PMU
> >>>>     inhibiting the use of the msr PMU.
> >>>> v3: Fixes for hybrid metrics that were missing PMU. Update to the
> >>>>     latest events.
> >>>> v2: Fix hybrid and Co-authored-by tag issues reported by
> >>>>     Arnaldo. Updates to Lunarlake and Meteorlake events. Addition
> >>>> of
> >>>>     Clearwaterforest.
> >>>
> >>> Sorry, forgot to add Thomas again.
> >>> https://lore.kernel.org/lkml/20250204213259.127939-1-irogers@google.com/
> >>
> >> Hi, I'm seeing some warnings like this and the all metrics test is
> >> skipped:
> >>
> >> Testing tma_info_inst_mix_iparith
> >> FP issues
> >> Cannot resolve IDs for tma_info_inst_mix_iparith:
> >> cpu_core@INST_RETIRED.ANY@ / (cpu_core@FP_ARITH_INST_RETIRED.SCALAR@ +
> >> cpu_core@FP_ARITH_INST_RETIRED.VECTOR@)
> >> Testing tma_info_inst_mix_iparith_avx128
> >> FP issues
> >> Cannot resolve IDs for tma_info_inst_mix_iparith_avx128:
> >> cpu_core@INST_RETIRED.ANY@ /
> >> (cpu_core@FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE@ +
> >> cpu_core@FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE@)
> >> Testing tma_info_inst_mix_iparith_avx256
> >> FP issues
> >> Cannot resolve IDs for tma_info_inst_mix_iparith_avx256:
> >> cpu_core@INST_RETIRED.ANY@ /
> >> (cpu_core@FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE@ +
> >> cpu_core@FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE@)
> >> Testing tma_info_inst_mix_iparith_scalar_dp
> >> FP issues
> >> Cannot resolve IDs for tma_info_inst_mix_iparith_scalar_dp:
> >> cpu_core@INST_RETIRED.ANY@ /
> >> cpu_core@FP_ARITH_INST_RETIRED.SCALAR_DOUBLE@
> >> Testing tma_info_inst_mix_iparith_scalar_sp
> >> FP issues
> >> Cannot resolve IDs for tma_info_inst_mix_iparith_scalar_sp:
> >> cpu_core@INST_RETIRED.ANY@ /
> >> cpu_core@FP_ARITH_INST_RETIRED.SCALAR_SINGLE@
> >
> > Thanks Tom, we've gone from a fail to skip - so progress! I think it
> > actually isn't something to worry about. These metrics are measuring
> > vector and floating point things. We run a workload, when testing the
> > metrics, that doesn't have floating point and vector operations. This
> > causes issues with metrics for these instructions as the counters
> > don't count anything. Because of this I added some logic to just skip
> > when we see these failures:
> > https://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git/tree/tools/perf/tests/shell/stat_all_metrics.sh?h=perf-tools-next#n51
> > but a better fix would be to have a workload with FP and AMX operations.
> >
> > You could test these metrics work manually, by running something like:
> > $ perf stat -M tma_info_inst_mix_iparith <benchmark>
> > where <benchmark> would need to contain FP or AMX instructions.
> >
>
> It should be OK to skip the "FP issues", but the "Cannot resolve IDs"
> seems a different issue.
>
> I found the similar error when I run perf stat on my Arrow Lake machine.
>
> $ sudo ./perf stat
> Cannot resolve IDs for tma_memory_bound: topdown\-mem\-bound /
> (topdown\-fe\-bound + topdown\-bad\-spec + topdown\-retiring +
> topdown\-be\-bound) + 0 * slots
>
> I think the warning is because perf doesn't find all the matched events.
> https://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git/tree/tools/perf/util/metricgroup.c?h=tmp.perf-tools-next#n326
>
>
> Then I go to check the event list of tma_memory_bound.
> For cpu_atom, it requires slots and topdown-mem-bound, which should be
> only available on p-core.
>
> +    {
> +        "BriefDescription": "This metric represents fraction of slots
> the Memory subsystem within the Backend was a bottleneck",
> +        "DefaultMetricgroupName": "TopdownL2",
> +        "MetricExpr": "topdown\\-mem\\-bound / (topdown\\-fe\\-bound +
> topdown\\-bad\\-spec + topdown\\-retiring + topdown\\-be\\-bound) + 0 *
> slots",
> +        "MetricGroup":
> "Backend;Default;Slots;TmaL2;TopdownL2;tma_L2_group;tma_backend_bound_group",
> +        "MetricName": "tma_memory_bound",
> +        "MetricThreshold": "tma_memory_bound > 0.2 & tma_backend_bound
> > 0.2",
> +        "MetricgroupNoGroup": "TopdownL2;Default",
> +        "PublicDescription": "This metric represents fraction of slots
> the Memory subsystem within the Backend was a bottleneck.  Memory Bound
> estimates fraction of slots where pipeline is likely stalled due to
> demand load or store instructions. This accounts mainly for (1)
> non-completed in-flight memory demand loads which coincides with
> execution units starvation; in addition to (2) cases where stores could
> impose backpressure on the pipeline when many of them get buffered at
> the same time (less common out of the two)",
> +        "ScaleUnit": "100%",
> +        "Unit": "cpu_atom"
> +    },
>
> I didn't check the tma_info_inst_mix_iparith which Thomas mentioned
> above yet. But I suspect it should be the same issue.
>
> The perf test may have to error out when the "Cannot resolve IDs"
> message is detected.

Agreed. I think I see the issue. We're adding the extra/Valkyrie
metrics to both core types during conversion, a quick fix is to just
skip doing this for atom. I'll cut a v4 with this.

Thanks,
Ian