Messages in this thread | | | Date | Tue, 11 Jan 2011 16:58:16 -0200 | From | Arnaldo Carvalho de Melo <> | Subject | Re: [PATCH 3/6] perf tools: Emit clearer message for sys_perf_event_open ENOENT return |
| |
Em Tue, Jan 11, 2011 at 11:40:23AM -0700, David Ahern escreveu: > > > 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.
Argh, you're right, in both cases (top and record) :-\ Reverting.
> 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
| |