Re: [PATCH 0/4] TopDown metrics support for Ice Lake (perf tool)

From: Jiri Olsa
Date: Wed Aug 26 2020 - 11:54:56 EST


On Thu, Aug 20, 2020 at 09:45:28AM -0700, kan.liang@xxxxxxxxxxxxxxx wrote:
> From: Kan Liang <kan.liang@xxxxxxxxxxxxxxx>
>
> The kernel patches have been merged into the tip's perf/core branch.
> The patch set is on top of commit 2cb5383b30d4 ("perf/x86/intel: Support
> per-thread RDPMC TopDown metrics") of the tip's perf/core branch.
>
> The changes for the perf tool include:
> - Extend --topdown option to support per thread TopDown metrics
> - Support sample-read topdown metric group
> - Add a complete document for the TopDown usage.
>
> Ice Lake has support for measuring the level 1 TopDown metrics
> directly in hardware. This is implemented by an additional METRICS
> register, and a new Fixed Counter 3 that measures pipeline SLOTS.
>
> New in Icelake
> - Do not require generic counters. This allows to collect TopDown always
> in addition to other events.
> - Measuring TopDown per thread/process instead of only per core
>
> For the Ice Lake implementation of performance metrics, the values in
> PERF_METRICS MSR are derived from fixed counter 3. Software should start
> both registers, PERF_METRICS and fixed counter 3, from zero.
> Additionally, software is recommended to periodically clear both
> registers in order to maintain accurate measurements. The latter is
> required for certain scenarios that involve sampling metrics at high
> rates. Software should always write fixed counter 3 before write to
> PERF_METRICS.
>
> IA32_PERF_GLOBAL_STATUS. OVF_PERF_METRICS[48]: If this bit is set,
> it indicates that some PERF_METRICS-related counter has overflowed and
> a PMI is triggered. Software has to synchronize, e.g. re-start,
> PERF_METRICS as well as fixed counter 3. Otherwise, PERF_METRICS may
> return invalid values.
>
> Limitation
> - To get accurate result and avoid reading the METRICS register multiple
> times, the TopDown metrics events and SLOTS event have to be in the
> same group.
> - METRICS and SLOTS registers have to be cleared after each read by SW.
> That is to prevent the lose of precision.
> - Cannot do sampling read SLOTS and TopDown metric events
>
> Please refer SDM Vol3, 18.3.9.3 Performance Metrics for the details of
> TopDown metrics.
>
> Andi Kleen (2):
> perf stat: Support new per thread TopDown metrics
> perf, tools: Add documentation for topdown metrics
>
> Kan Liang (2):
> perf tools: Rename group to topdown
> perf record: Support sample-read topdown metric group

I don't have Ice lake to actualy check, but it looks good

Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>

thanks,
jirka