lkml.org 
[lkml]   [2022]   [Sep]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v1 00/22] Improvements to Intel perf metrics


On 2022-09-28 10:04 a.m., Ian Rogers wrote:
> On Wed, Sep 28, 2022 at 5:56 AM Liang, Kan <kan.liang@linux.intel.com> wrote:
>>
>>
>>
>> On 2022-09-28 3:21 a.m., Ian Rogers wrote:
>>> For consistency with:
>>> https://github.com/intel/perfmon-metrics
>>> rename of topdown TMA metrics from Frontend_Bound to tma_frontend_bound.
>>>
>>
>> If so, all the scripts with the old name must be broken on the existing
>> platforms. Can we keep both old name and new name for the existing
>> platforms?
>>
>> For the event naming, if we want to rename an event. We still keep the
>> old name and mark it as deprecated in the existing platforms to maintain
>> compatibility.
>>
>> Can we do the similar thing for metrics?
>> For the existing platforms, just add all the metrics from the
>> perfmon-metrics and don't change the existing metrics unless they have
>> errors.
>>
>> Thanks,
>> Kan
>
> Thanks Kan,
>
> Do we have examples of scripts that will be impacted by this? My
> thoughts are that such scripts are likely using TopdownL1 as a metric
> group, the metrics within that group vary and names may change over
> time. For example, on hybrid there is Backend_Bound_Aux. Given the
> existing state, such compatibility is only required for level 1
> metrics on CNL CPX CLX KBLR/CFL/CML SKX SKL/KBL BDX BDW HSX HSW IVT
> IVB JKT/SNB-EP SNB. Injecting either a metric group or an aliasing
> metric is messy and when can we stop carrying the patch? There hasn't
> been discussion of doing this in the context of:
> https://github.com/intel/perfmon-metrics
> I'd suggest that this is a good time for script writers to change how
> they use particular metrics and derive the information instead from
> groups like TopdownL1.

So the rename only impacts the Topdown metrics, right?
We still keep the old group name, TopdownL1.

If so, I agree. It only makes sense when collect in a Top-down group,
not specific metrics.

Thanks,
Kan

> This will also make them robust to changes in
> the TMA metrics CSV files, another win.
>
> Thanks,
> Ian
>
>
>>> 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
>>>
>>> Ian Rogers (22):
>>> perf expr: Allow a double if expression
>>> 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/x86/alderlake/adl-metrics.json | 1215 ++++++++++++++++-
>>> .../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 | 603 ++++++--
>>> .../arch/x86/broadwellde/bdwde-metrics.json | 639 +++++++--
>>> .../arch/x86/broadwellx/bdx-metrics.json | 644 +++++++--
>>> .../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 | 893 ++++++++----
>>> .../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 | 502 +++++--
>>> .../pmu-events/arch/x86/haswellx/cache.json | 2 +-
>>> .../arch/x86/haswellx/frontend.json | 12 +-
>>> .../arch/x86/haswellx/hsx-metrics.json | 707 +++++++---
>>> .../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 | 725 +++++++++-
>>> .../pmu-events/arch/x86/icelake/pipeline.json | 2 +-
>>> .../pmu-events/arch/x86/icelakex/cache.json | 6 +-
>>> .../arch/x86/icelakex/icx-metrics.json | 794 ++++++++++-
>>> .../arch/x86/icelakex/pipeline.json | 2 +-
>>> .../arch/x86/icelakex/uncore-other.json | 2 +-
>>> .../arch/x86/ivybridge/ivb-metrics.json | 525 +++++--
>>> .../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 | 558 ++++++--
>>> .../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 | 291 ++--
>>> tools/perf/pmu-events/arch/x86/mapfile.csv | 18 +-
>>> .../arch/x86/sandybridge/snb-metrics.json | 279 +++-
>>> .../arch/x86/sapphirerapids/cache.json | 4 +-
>>> .../arch/x86/sapphirerapids/frontend.json | 11 +
>>> .../arch/x86/sapphirerapids/pipeline.json | 4 +-
>>> .../arch/x86/sapphirerapids/spr-metrics.json | 858 +++++++++++-
>>> .../arch/x86/skylake/skl-metrics.json | 774 ++++++++---
>>> .../arch/x86/skylakex/skx-metrics.json | 859 +++++++++---
>>> .../arch/x86/skylakex/uncore-memory.json | 18 +-
>>> .../arch/x86/skylakex/uncore-other.json | 19 +-
>>> .../arch/x86/tigerlake/tgl-metrics.json | 727 +++++++++-
>>> 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 +-
>>> 56 files changed, 10103 insertions(+), 2129 deletions(-)
>>>

\
 
 \ /
  Last update: 2022-09-28 17:07    [W:1.232 / U:0.104 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site