]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
perf stat: When no events, don't report an error if there is none
authorIan Rogers <irogers@google.com>
Wed, 3 Dec 2025 21:47:04 +0000 (13:47 -0800)
committerNamhyung Kim <namhyung@kernel.org>
Thu, 4 Dec 2025 08:36:14 +0000 (00:36 -0800)
Events may fail to open as no supported CPUs were specified on the
command line. In this case a confusing "error" message of "success"
can be reported. Let's skip the error in that case.

Before:
```
$ perf stat -C2048 -e cycles -- true
WARNING: A requested CPU in '2048' is not supported by PMU 'cpu' (CPUs 0-7) for event 'cycles'
Error:
No supported events found.
The sys_perf_event_open() syscall returned with 0 (Success) for event (cpu/unknown-hardware/).
"dmesg | grep -i perf" may provide additional information.
```

After:
```
$ perf stat -C2048 -e cycles -- true
WARNING: A requested CPU in '2048' is not supported by PMU 'cpu' (CPUs 0-7) for event 'cycles'
Error:
No supported events found.
```

Signed-off-by: Ian Rogers <irogers@google.com>
Tested-by: Thomas Richter <tmricht@linux.ibm.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
tools/perf/builtin-stat.c

index 6410115ed9c5ef1fc2ced854dd98f2255cdbae2f..bd3c3de8d2009d11d5129a78344b645d0c8fda41 100644 (file)
@@ -924,8 +924,10 @@ static int __run_perf_stat(int argc, const char **argv, int run_idx)
                }
        }
        if (!has_supported_counters && !stat_config.null_run) {
-               evsel__open_strerror(evlist__first(evsel_list), &target, open_err,
-                                    msg, sizeof(msg));
+               if (open_err) {
+                       evsel__open_strerror(evlist__first(evsel_list), &target, open_err,
+                                            msg, sizeof(msg));
+               }
                ui__error("No supported events found.\n%s\n", msg);
 
                if (child_pid != -1)