tools/perf/util/pfm.c | 4 ---- 1 file changed, 4 deletions(-)
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.
Signed-off-by: Ian Rogers <irogers@google.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
On Mon, 21 Jul 2025 18:34:49 -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. > > [...] Applied to perf-tools-next, thanks! Best regards, Namhyung
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@kernel.org>
Thanks,
Namhyung
>
> Signed-off-by: Ian Rogers <irogers@google.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
>
© 2016 - 2026 Red Hat, Inc.