[PATCH] perf stat: Do not open cgroups for BPF counters

From: Namhyung Kim

Date: Wed Jul 08 2026 - 16:10:22 EST


The --bpf-counters and --for-each-cgroup options use a set of shared
events among the given cgroups rather than adding events for each cgroup
respectively. It only uses cgroup-ID to compare and calculate the
result. So no need to open and keep FDs for cgroups in BPF mode.

Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>
---
tools/perf/builtin-stat.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index 92cdb2df7285befb..49e523058185b753 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -2888,7 +2888,8 @@ int cmd_stat(int argc, const char **argv)
goto out;
}

- if (evlist__expand_cgroup(evsel_list, stat_config.cgroup_list, true) < 0) {
+ if (evlist__expand_cgroup(evsel_list, stat_config.cgroup_list,
+ !target.use_bpf) < 0) {
parse_options_usage(stat_usage, stat_options,
"for-each-cgroup", 0);
goto out;
--
2.55.0.795.g602f6c329a-goog