[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAP-5=fX3a=Ng=8Gd-DNx1+dKj7QEZJxMCFW_=brdU52ADuwf7g@mail.gmail.com>
Date: Wed, 23 Aug 2023 01:12:27 -0700
From: Ian Rogers <irogers@...gle.com>
To: Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...hat.com>,
Arnaldo Carvalho de Melo <acme@...nel.org>,
Mark Rutland <mark.rutland@....com>,
Alexander Shishkin <alexander.shishkin@...ux.intel.com>,
Jiri Olsa <jolsa@...nel.org>,
Namhyung Kim <namhyung@...nel.org>,
Ian Rogers <irogers@...gle.com>,
Adrian Hunter <adrian.hunter@...el.com>,
James Clark <james.clark@....com>,
Kan Liang <kan.liang@...ux.intel.com>,
John Garry <john.g.garry@...cle.com>,
Kajol Jain <kjain@...ux.ibm.com>,
Jing Zhang <renyu.zj@...ux.alibaba.com>,
Ravi Bangoria <ravi.bangoria@....com>,
Rob Herring <robh@...nel.org>,
Gaosheng Cui <cuigaosheng1@...wei.com>,
linux-perf-users@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v1 00/25] Lazily load PMU data
On Wed, Aug 23, 2023 at 1:08 AM Ian Rogers <irogers@...gle.com> wrote:
>
> Lazily load PMU data both from sysfs and json files. Reorganize
> json data to be more PMU oriented to facilitate this, for
> example, json data is now sorted into arrays for their PMU.
>
> In refactoring the code some changes were made to get rid of maximum
> encoding sizes for events (256 bytes), with input files being directly
> passed to the lex generated code. There is also a small event parse
> error message improvement.
>
> Some results from an Intel tigerlake laptop running Debian:
>
> Binary size reduction of 1.4% or 143,264 bytes because the PMU
> name no longer appears in the string.
>
> stat -e cpu/cycles/ minor faults reduced from 1733 to 1667, open calls reduced
> from 171 to 94.
>
> stat default minor faults reduced from 1085 to 1727, open calls reduced
> from 654 to 343.
s/1085/1805/
Thanks,
Ian
>
> Average PMU scanning reduced from 4720.641usec to 2927.293usec.
> Average core PMU scanning reduced from 1004.658usec to 232.668usec
> (4.3x faster).
>
> Ian Rogers (25):
> perf script ibs: Remove unused include
> perf pmu: Avoid a path name copy
> perf pmu: Move perf_pmu__set_format to pmu.y
> perf pmu: Reduce scope of perf_pmu_error
> perf pmu: Avoid passing format list to perf_pmu__config_terms
> perf pmu: Avoid passing format list to perf_pmu__format_type
> perf pmu: Avoid passing format list to perf_pmu__format_bits
> perf pmu: Pass PMU rather than aliases and format
> perf pmu: Make the loading of formats lazy
> perf pmu: Abstract alias/event struct
> perf pmu-events: Add extra underscore to function names
> perf jevents: Group events by PMU
> perf parse-events: Improve error message for double setting
> perf s390 s390_cpumcfdg_dump: Don't scan all PMUs
> perf pmu-events: Reduce processed events by passing PMU
> perf pmu-events: Add pmu_events_table__find_event
> perf pmu: Parse sysfs events directly from a file
> perf pmu: Prefer passing pmu to aliases list
> perf pmu: Merge json events with sysfs at load time
> perf pmu: Cache json events table
> perf pmu: Lazily add json events
> perf pmu: Scan type early to fail an invalid PMU quickly
> perf pmu: Be lazy about loading event info files from sysfs
> perf pmu: Lazily load sysfs aliases
> perf jevents: Sort strings in the big C string to reduce faults
>
> tools/perf/arch/x86/util/intel-pt.c | 39 +-
> tools/perf/bench/pmu-scan.c | 8 +-
> tools/perf/pmu-events/empty-pmu-events.c | 49 +-
> tools/perf/pmu-events/jevents.py | 319 +++++++--
> tools/perf/pmu-events/pmu-events.h | 15 +-
> tools/perf/tests/parse-events.c | 2 +-
> tools/perf/tests/pmu-events.c | 183 ++---
> tools/perf/tests/pmu.c | 76 +-
> tools/perf/util/amd-sample-raw.c | 1 -
> tools/perf/util/metricgroup.c | 10 +-
> tools/perf/util/parse-events.c | 91 ++-
> tools/perf/util/parse-events.h | 3 +-
> tools/perf/util/pmu.c | 872 +++++++++++++++--------
> tools/perf/util/pmu.h | 110 ++-
> tools/perf/util/pmu.y | 32 +-
> tools/perf/util/pmus.c | 230 ++----
> tools/perf/util/s390-sample-raw.c | 50 +-
> 17 files changed, 1251 insertions(+), 839 deletions(-)
>
> --
> 2.42.0.rc1.204.g551eb34607-goog
>
Powered by blists - more mailing lists