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 - 2025 Red Hat, Inc.