]> git.ipfire.org Git - thirdparty/linux.git/commit
perf stat: Propagate supported flag to follower cgroup BPF events
authorIan Rogers <irogers@google.com>
Tue, 19 May 2026 15:27:15 +0000 (08:27 -0700)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 25 May 2026 19:46:17 +0000 (16:46 -0300)
commit65bd18199ad5358f7c879dc69b4de3671b33e62e
treebca80385c99402c65295a5e7f2a014fcfbeac5f3
parent7378b6656aa46fda56f2743d5a7c1f619c2f6f9b
perf stat: Propagate supported flag to follower cgroup BPF events

When using BPF counters with cgroups, follower events (for cgroups
other than the first one) are not opened. Because they are not opened,
their `supported` flag was left as `false`.

During metric calculation, `prepare_metric` checks if the event is
supported. If it is not supported (like the follower events), it
explicitly sets the value to `NAN`, which eventually causes the metric
to be reported as `nan %`.

Fix this by propagating the `supported` flag from the "leader" events
(the ones opened for the first cgroup) to the "follower" events.

Also add a validation check to `bperf_load_program` to ensure `nr_cgroups`
is not zero and the number of events is a multiple of `nr_cgroups`,
preventing a potential division-by-zero (SIGFPE) exception when
`num_events` evaluates to 0 (e.g., with a trailing comma in cgroups list).

Reported-by: Svilen Kanev <skanev@google.com>
Assisted-by: Antigravity:gemini-3-flash
Signed-off-by: Ian Rogers <irogers@google.com>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: James Clark <james.clark@linaro.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/bpf_counter_cgroup.c