Messages in this thread | | | From | Namhyung Kim <> | Date | Mon, 14 Sep 2020 21:51:03 +0900 | Subject | Re: [PATCH V3 0/4] TopDown metrics support for Ice Lake (perf tool) |
| |
Hello,
On Fri, Sep 11, 2020 at 11:51 PM <kan.liang@linux.intel.com> wrote: > > From: Kan Liang <kan.liang@linux.intel.com> > > Changes since V2: > - Even topdown_metric_attrs() is failed to be found in the previous > platforms, the 'str' variable is still allocated. > zfree it before reuse it in Patch 3. > > Changes since V1: > - Fix a grammar error in the printf message in Patch 3 > - Add the "Acked-by" tag from Jirka. > > > 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
Acked-by: Namhyung Kim <namhyung@kernel.org>
Thanks Namhyung
> > tools/perf/Documentation/perf-stat.txt | 7 +- > tools/perf/Documentation/topdown.txt | 256 +++++++++++++++++++++++++ > tools/perf/arch/x86/util/Build | 2 +- > tools/perf/arch/x86/util/group.c | 28 --- > tools/perf/arch/x86/util/topdown.c | 63 ++++++ > tools/perf/builtin-stat.c | 81 +++----- > tools/perf/util/Build | 1 + > tools/perf/util/group.h | 8 - > tools/perf/util/record.c | 3 +- > tools/perf/util/stat-shadow.c | 89 +++++++++ > tools/perf/util/stat.c | 4 + > tools/perf/util/stat.h | 8 + > tools/perf/util/topdown.c | 58 ++++++ > tools/perf/util/topdown.h | 12 ++ > 14 files changed, 528 insertions(+), 92 deletions(-) > create mode 100644 tools/perf/Documentation/topdown.txt > delete mode 100644 tools/perf/arch/x86/util/group.c > create mode 100644 tools/perf/arch/x86/util/topdown.c > delete mode 100644 tools/perf/util/group.h > create mode 100644 tools/perf/util/topdown.c > create mode 100644 tools/perf/util/topdown.h > > -- > 2.17.1 >
| |