Messages in this thread | | | Date | Tue, 11 Jan 2011 11:40:23 -0700 | From | David Ahern <> | Subject | Re: [PATCH 3/6] perf tools: Emit clearer message for sys_perf_event_open ENOENT return |
| |
On 01/10/11 17:28, Arnaldo Carvalho de Melo wrote: > From: Arnaldo Carvalho de Melo <acme@redhat.com> > > Improve sys_perf_event_open ENOENT return handling in top and record, just > like 5a3446b does for stat. > > Cc: David Ahern <daahern@cisco.com> > Cc: Frederic Weisbecker <fweisbec@gmail.com> > Cc: Ingo Molnar <mingo@elte.hu> > Cc: Mike Galbraith <efault@gmx.de> > Cc: Paul Mackerras <paulus@samba.org> > Cc: Peter Zijlstra <peterz@infradead.org> > Cc: Stephane Eranian <eranian@google.com> > Cc: Tom Zanussi <tzanussi@gmail.com> > LKML-Reference: <new-submission> > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > --- > tools/perf/builtin-record.c | 3 +++ > tools/perf/builtin-top.c | 2 ++ > 2 files changed, 5 insertions(+), 0 deletions(-) > > diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c > index 7bc0490..7069bd3 100644 > --- a/tools/perf/builtin-record.c > +++ b/tools/perf/builtin-record.c > @@ -331,6 +331,9 @@ try_again: > else if (err == ENODEV && cpu_list) { > die("No such device - did you specify" > " an out-of-range profile CPU?\n"); > + } else if (err == ENOENT) { > + die("%s event is not supported. ", > + event_name(evsel));
I think this interferes with the fallback from hardware profiling to software profiling. .e.g., in a VM with no PMU.
David
> } else if (err == EINVAL && sample_id_all_avail) { > /* > * Old kernel, no attr->sample_id_type_all field > diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c > index 1e67ab9..6ce4042 100644 > --- a/tools/perf/builtin-top.c > +++ b/tools/perf/builtin-top.c > @@ -1247,6 +1247,8 @@ try_again: > die("Permission error - are you root?\n" > "\t Consider tweaking" > " /proc/sys/kernel/perf_event_paranoid.\n"); > + if (err == ENOENT) > + die("%s event is not supported. ", event_name(evsel)); > /* > * If it's cycles then fall back to hrtimer > * based cpu-clock-tick sw counter, which
| |