diff options
author | David Ahern <dsahern@gmail.com> | 2013-07-18 19:27:59 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2013-07-22 11:03:57 -0400 |
commit | 2b821cce1c950cead081d779db0dda680192c4bd (patch) | |
tree | 16797ab2f37c9c3a47b4dc45c69ab81d76547c3e /tools/perf/util/evsel.c | |
parent | 2eaa1b407aa6592a884f1be061ef61de7012c97a (diff) |
perf evsel: Handle ENODEV on default cycles event
Some systems (e.g., VMs on qemu-0.13 with the default vcpu model) report
an unsupported CPU model:
Performance Events: unsupported p6 CPU model 2 no PMU driver, software events only.
Subsequent invocations of perf fail with:
The sys_perf_event_open() syscall returned with 19 (No such device) for event (cycles).
/bin/dmesg may provide additional information.
No CONFIG_PERF_EVENTS=y kernel support configured?
Add ENODEV to the list of errno's to fallback to cpu-clock.
Signed-off-by: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1374190079-28507-1-git-send-email-dsahern@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/evsel.c')
-rw-r--r-- | tools/perf/util/evsel.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c index a6354619fa5d..8bed0c1a1399 100644 --- a/tools/perf/util/evsel.c +++ b/tools/perf/util/evsel.c | |||
@@ -1482,7 +1482,7 @@ out: | |||
1482 | bool perf_evsel__fallback(struct perf_evsel *evsel, int err, | 1482 | bool perf_evsel__fallback(struct perf_evsel *evsel, int err, |
1483 | char *msg, size_t msgsize) | 1483 | char *msg, size_t msgsize) |
1484 | { | 1484 | { |
1485 | if ((err == ENOENT || err == ENXIO) && | 1485 | if ((err == ENOENT || err == ENXIO || err == ENODEV) && |
1486 | evsel->attr.type == PERF_TYPE_HARDWARE && | 1486 | evsel->attr.type == PERF_TYPE_HARDWARE && |
1487 | evsel->attr.config == PERF_COUNT_HW_CPU_CYCLES) { | 1487 | evsel->attr.config == PERF_COUNT_HW_CPU_CYCLES) { |
1488 | /* | 1488 | /* |