[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aIKXa4LOIq5MyuS7@google.com>
Date: Thu, 24 Jul 2025 13:28:27 -0700
From: Namhyung Kim <namhyung@...nel.org>
To: Ian Rogers <irogers@...gle.com>
Cc: 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>,
Adrian Hunter <adrian.hunter@...el.com>,
Kan Liang <kan.liang@...ux.intel.com>,
Jean-Philippe Romain <jean-philippe.romain@...s.st.com>,
linux-perf-users@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v1] perf pfm: Don't force loading of all PMUs
On Mon, Jul 21, 2025 at 06:34:49PM -0700, Ian Rogers wrote:
> Force loading all PMUs adds significant cost because DRM and other
> PMUs are loaded, it should also not be required if the pmus__
> functions are used.
>
> Tested by run perf test, in particular the pfm related tests. Also
> `perf list` is identical before and after.
I've also checked it with timing. I'll add this to the commit message.
Before:
$ time ./perf test pfm
54: Test libpfm4 support :
54.1: test of individual --pfm-events : Ok
54.2: test groups of --pfm-events : Ok
103: perf all libpfm4 events test : Ok
real 0m8.933s
user 0m1.824s
sys 0m7.122s
After:
$ time ./perf test pfm
54: Test libpfm4 support :
54.1: test of individual --pfm-events : Ok
54.2: test groups of --pfm-events : Ok
103: perf all libpfm4 events test : Ok
real 0m5.259s
user 0m1.793s
sys 0m3.570s
Tested-by: Namhyung Kim <namhyung@...nel.org>
Thanks,
Namhyung
>
> Signed-off-by: Ian Rogers <irogers@...gle.com>
> ---
> tools/perf/util/pfm.c | 4 ----
> 1 file changed, 4 deletions(-)
>
> diff --git a/tools/perf/util/pfm.c b/tools/perf/util/pfm.c
> index 0dacc133ed39..e89395814e88 100644
> --- a/tools/perf/util/pfm.c
> +++ b/tools/perf/util/pfm.c
> @@ -47,10 +47,6 @@ int parse_libpfm_events_option(const struct option *opt, const char *str,
> p_orig = p = strdup(str);
> if (!p)
> return -1;
> - /*
> - * force loading of the PMU list
> - */
> - perf_pmus__scan(NULL);
>
> for (q = p; strsep(&p, ",{}"); q = p) {
> sep = p ? str + (p - p_orig - 1) : "";
> --
> 2.50.0.727.gbf7dc18ff4-goog
>
Powered by blists - more mailing lists