Messages in this thread Patch in this message | | | Date | Fri, 2 Dec 2011 09:38:33 +1100 | From | Anton Blanchard <> | Subject | [PATCH] perf stat: Failure with "Operation not supported" |
| |
perf stat is failing on PowerPC:
# perf stat /bin/true Error: open_counter returned with 95 (Operation not supported). /bin/dmesg may provide additional information.
Fatal: Not all events could be opened.
commit 370faf1dd046 (perf stat: Fail softly on unsupported events) added a check for failure returning ENOENT, but the POWER backend returns EOPNOTSUPP. It looks like alpha, blackfin and mips do the same.
With the patch applied, things work as expected:
# perf stat /bin/true Performance counter stats for '/bin/true':
0.362176 task-clock # 0.623 CPUs utilized 0 context-switches # 0.000 M/sec 0 CPU-migrations # 0.000 M/sec 28 page-faults # 0.077 M/sec 1,677,020 cycles # 4.630 GHz <not supported> stalled-cycles-frontend <not supported> stalled-cycles-backend 431,220 instructions # 0.26 insns per cycle 101,889 branches # 281.325 M/sec 4,145 branch-misses # 4.07% of all branches
0.000581361 seconds time elapsed
Signed-off-by: Anton Blanchard <anton@samba.org> Cc: <stable@kernel.org> # 3.0+ ---
Index: linux/tools/perf/builtin-stat.c =================================================================== --- linux.orig/tools/perf/builtin-stat.c 2011-12-02 09:09:17.993942921 +1100 +++ linux/tools/perf/builtin-stat.c 2011-12-02 09:10:15.978939340 +1100 @@ -463,7 +463,8 @@ static int run_perf_stat(int argc __used list_for_each_entry(counter, &evsel_list->entries, node) { if (create_perf_stat_counter(counter, first) < 0) { - if (errno == EINVAL || errno == ENOSYS || errno == ENOENT) { + if (errno == EINVAL || errno == ENOSYS || + errno == ENOENT || errno == EOPNOTSUPP) { if (verbose) ui__warning("%s event is not supported by the kernel.\n", event_name(counter));
| |