Commit 12d30725 authored by Ian Rogers's avatar Ian Rogers Committed by Namhyung Kim
Browse files

perf pfm: Don't force loading of all PMUs



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.

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

Signed-off-by: default avatarIan Rogers <irogers@google.com>
Tested-by: default avatarNamhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/r/20250722013449.146233-1-irogers@google.com


Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
parent db12d7ec
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -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) : "";