From: Ian Rogers Date: Sat, 1 Feb 2025 07:43:16 +0000 (-0800) Subject: perf evsel: Reduce scanning core PMUs in is_hybrid X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=340c345e587ef61e15f02483b1e72e5fa168f6ad;p=users%2Fjedix%2Flinux-maple.git perf evsel: Reduce scanning core PMUs in is_hybrid evsel__is_hybrid returns true if there are multiple core PMUs and the evsel is for a core PMU. Determining the number of core PMUs can require loading/scanning PMUs. There's no point doing the scanning if evsel for the is_hybrid test isn't core so reorder the tests to reduce PMU scanning. Signed-off-by: Ian Rogers Reviewed-by: Kan Liang Link: https://lore.kernel.org/r/20250201074320.746259-2-irogers@google.com Signed-off-by: Namhyung Kim --- diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c index 026cf9a9893c3..4009f7d584151 100644 --- a/tools/perf/util/evsel.c +++ b/tools/perf/util/evsel.c @@ -3866,10 +3866,10 @@ void evsel__zero_per_pkg(struct evsel *evsel) */ bool evsel__is_hybrid(const struct evsel *evsel) { - if (perf_pmus__num_core_pmus() == 1) + if (!evsel->core.is_pmu_core) return false; - return evsel->core.is_pmu_core; + return perf_pmus__num_core_pmus() > 1; } struct evsel *evsel__leader(const struct evsel *evsel)