[PATCH v3 00/23] Improvements to Intel perf metrics

From: Ian Rogers
Date: Mon Oct 03 2022 - 22:16:24 EST


For consistency with:
https://github.com/intel/perfmon-metrics
rename of topdown TMA metrics from Frontend_Bound to tma_frontend_bound.

Remove _SMT suffix metrics are dropped as the #SMT_On and #EBS_Mode
are correctly expanded in the single main metric. Fix perf expr to
allow a double if to be correctly processed.

Add all 6 levels of TMA metrics. Child metrics are placed in a group
named after their parent allowing children of a metric to be
easily measured using the metric name with a _group suffix.

Don't drop TMA metrics if they contain topdown events.

The ## and ##? operators are correctly expanded.

The locate-with column is added to the long description describing a
sampling event.

Metrics are written in terms of other metrics to reduce the expression
size and increase readability.

Following this the pmu-events/arch/x86 directories match those created
by the script at:
https://github.com/intel/event-converter-for-linux-perf/blob/master/download_and_gen.py
with updates at:
https://github.com/captain5050/event-converter-for-linux-perf


v3. Fix a parse metrics test failure due to making metrics referring
to other metrics case sensitive - make the cases in the test
metric match.
v2. Fixes commit message wrt missing mapfile.csv updates as noted by
Zhengjun Xing <zhengjun.xing@xxxxxxxxxxxxxxx>. ScaleUnit is added
for TMA metrics. Metrics with topdown events have have a missing
slots event added if necessary. The latest metrics at:
https://github.com/intel/perfmon-metrics are used, however, the
event-converter-for-linux-perf scripts now prefer their own
metrics in case of mismatched units when a metric is written in
terms of another. Additional testing was performed on broadwell,
broadwellde, cascadelakex, haswellx, sapphirerapids and tigerlake
CPUs.

Ian Rogers (23):
perf expr: Allow a double if expression
perf test: Adjust case of test metrics
perf expr: Remove jevents case workaround
perf metrics: Don't scale counts going into metrics
perf vendor events: Update Intel skylakex
perf vendor events: Update Intel alderlake
perf vendor events: Update Intel broadwell
perf vendor events: Update Intel broadwellx
perf vendor events: Update Intel cascadelakex
perf vendor events: Update elkhartlake cpuids
perf vendor events: Update Intel haswell
perf vendor events: Update Intel haswellx
perf vendor events: Update Intel icelake
perf vendor events: Update Intel icelakex
perf vendor events: Update Intel ivybridge
perf vendor events: Update Intel ivytown
perf vendor events: Update Intel jaketown
perf vendor events: Update Intel sandybridge
perf vendor events: Update Intel sapphirerapids
perf vendor events: Update silvermont cpuids
perf vendor events: Update Intel skylake
perf vendor events: Update Intel tigerlake
perf vendor events: Update Intel broadwellde

.../arch/test/test_soc/cpu/metrics.json | 6 +-
.../arch/x86/alderlake/adl-metrics.json | 1353 ++++++++++++++++-
.../pmu-events/arch/x86/alderlake/cache.json | 129 +-
.../arch/x86/alderlake/frontend.json | 12 +
.../pmu-events/arch/x86/alderlake/memory.json | 22 +
.../pmu-events/arch/x86/alderlake/other.json | 22 +
.../arch/x86/alderlake/pipeline.json | 14 +-
.../arch/x86/broadwell/bdw-metrics.json | 679 +++++++--
.../arch/x86/broadwellde/bdwde-metrics.json | 711 +++++++--
.../arch/x86/broadwellx/bdx-metrics.json | 965 +++++++-----
.../arch/x86/broadwellx/uncore-cache.json | 10 +-
.../x86/broadwellx/uncore-interconnect.json | 18 +-
.../arch/x86/broadwellx/uncore-memory.json | 18 +-
.../arch/x86/cascadelakex/clx-metrics.json | 1285 ++++++++++------
.../arch/x86/cascadelakex/uncore-memory.json | 18 +-
.../arch/x86/cascadelakex/uncore-other.json | 10 +-
.../pmu-events/arch/x86/haswell/cache.json | 4 +-
.../pmu-events/arch/x86/haswell/frontend.json | 12 +-
.../arch/x86/haswell/hsw-metrics.json | 570 ++++++-
.../pmu-events/arch/x86/haswellx/cache.json | 2 +-
.../arch/x86/haswellx/frontend.json | 12 +-
.../arch/x86/haswellx/hsx-metrics.json | 919 +++++++----
.../x86/haswellx/uncore-interconnect.json | 18 +-
.../arch/x86/haswellx/uncore-memory.json | 18 +-
.../pmu-events/arch/x86/icelake/cache.json | 6 +-
.../arch/x86/icelake/icl-metrics.json | 808 +++++++++-
.../pmu-events/arch/x86/icelake/pipeline.json | 2 +-
.../pmu-events/arch/x86/icelakex/cache.json | 6 +-
.../arch/x86/icelakex/icx-metrics.json | 1155 ++++++++++----
.../arch/x86/icelakex/pipeline.json | 2 +-
.../arch/x86/icelakex/uncore-other.json | 2 +-
.../arch/x86/ivybridge/ivb-metrics.json | 594 ++++++--
.../pmu-events/arch/x86/ivytown/cache.json | 4 +-
.../arch/x86/ivytown/floating-point.json | 2 +-
.../pmu-events/arch/x86/ivytown/frontend.json | 18 +-
.../arch/x86/ivytown/ivt-metrics.json | 630 ++++++--
.../arch/x86/ivytown/uncore-cache.json | 58 +-
.../arch/x86/ivytown/uncore-interconnect.json | 84 +-
.../arch/x86/ivytown/uncore-memory.json | 2 +-
.../arch/x86/ivytown/uncore-other.json | 6 +-
.../arch/x86/ivytown/uncore-power.json | 8 +-
.../arch/x86/jaketown/jkt-metrics.json | 327 +++-
tools/perf/pmu-events/arch/x86/mapfile.csv | 18 +-
.../arch/x86/sandybridge/snb-metrics.json | 315 +++-
.../arch/x86/sapphirerapids/cache.json | 4 +-
.../arch/x86/sapphirerapids/frontend.json | 11 +
.../arch/x86/sapphirerapids/pipeline.json | 4 +-
.../arch/x86/sapphirerapids/spr-metrics.json | 1249 ++++++++++-----
.../arch/x86/skylake/skl-metrics.json | 861 ++++++++---
.../arch/x86/skylakex/skx-metrics.json | 1262 +++++++++------
.../arch/x86/skylakex/uncore-memory.json | 18 +-
.../arch/x86/skylakex/uncore-other.json | 19 +-
.../arch/x86/tigerlake/tgl-metrics.json | 810 +++++++++-
tools/perf/pmu-events/empty-pmu-events.c | 6 +-
tools/perf/tests/expr.c | 4 +
tools/perf/util/expr.c | 11 +-
tools/perf/util/expr.y | 2 +-
tools/perf/util/stat-shadow.c | 9 +-
58 files changed, 11514 insertions(+), 3630 deletions(-)

--
2.38.0.rc1.362.ged0d419d3c-goog