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

From: Ian Rogers
Date: Mon Oct 03 2022 - 23:43:37 EST


On Mon, Oct 3, 2022 at 7:16 PM Ian Rogers <irogers@xxxxxxxxxx> wrote:
>
> 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.

I wrote up a little example of performing a top-down analysis for the
perf wiki here:
https://perf.wiki.kernel.org/index.php/Top-Down_Analysis

Thanks,
Ian

> 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
>