perf stat: Failure with "Operation not supported"
perf stat is failing on PowerPC:
Error: open_counter returned with 95 (Operation not supported). /bin/dmesg may provide additional information.
Fatal: Not all events could be opened.
commit 370faf1dd0
(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:
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
Cc: <stable@kernel.org> # 3.0+
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/20111202093833.5fef7226@kryten
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Родитель
dc440d10e1
Коммит
38f6ae1e1b
|
@ -463,7 +463,8 @@ static int run_perf_stat(int argc __used, const char **argv)
|
||||||
|
|
||||||
list_for_each_entry(counter, &evsel_list->entries, node) {
|
list_for_each_entry(counter, &evsel_list->entries, node) {
|
||||||
if (create_perf_stat_counter(counter, first) < 0) {
|
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)
|
if (verbose)
|
||||||
ui__warning("%s event is not supported by the kernel.\n",
|
ui__warning("%s event is not supported by the kernel.\n",
|
||||||
event_name(counter));
|
event_name(counter));
|
||||||
|
|
Загрузка…
Ссылка в новой задаче