* [tip:perf/stat] perf stat: Fail softly on unsupported events @ 2011-04-29 14:27 tip-bot for Ingo Molnar 2011-04-29 14:34 ` David Ahern 0 siblings, 1 reply; 4+ messages in thread From: tip-bot for Ingo Molnar @ 2011-04-29 14:27 UTC (permalink / raw) To: linux-tip-commits Cc: linux-kernel, acme, hpa, mingo, a.p.zijlstra, fweisbec, dsahern, tglx, mingo Commit-ID: 370faf1dd0461ad811852c8abbbcd3d73b1e4fc4 Gitweb: http://git.kernel.org/tip/370faf1dd0461ad811852c8abbbcd3d73b1e4fc4 Author: Ingo Molnar <mingo@elte.hu> AuthorDate: Fri, 29 Apr 2011 16:11:03 +0200 Committer: Ingo Molnar <mingo@elte.hu> CommitDate: Fri, 29 Apr 2011 16:22:33 +0200 perf stat: Fail softly on unsupported events David Ahern reported this perf stat failure: > # /tmp/build-perf/perf stat -- sleep 1 > Error: stalled-cycles-frontend event is not supported. > Fatal: Not all events could be opened. > > This is a Dell R410 with an E5620 processor. Fail in a softer fashion on unknown/unsupported events. Reported-by: David Ahern <dsahern@gmail.com> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Link: http://lkml.kernel.org/n/tip-7y40wib8n006io7hjpn1dsrm@git.kernel.org Signed-off-by: Ingo Molnar <mingo@elte.hu> --- tools/perf/builtin-stat.c | 4 +--- 1 files changed, 1 insertions(+), 3 deletions(-) diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c index 9e596ab..c8b535b 100644 --- a/tools/perf/builtin-stat.c +++ b/tools/perf/builtin-stat.c @@ -377,7 +377,7 @@ static int run_perf_stat(int argc __used, const char **argv) list_for_each_entry(counter, &evsel_list->entries, node) { if (create_perf_stat_counter(counter) < 0) { - if (errno == EINVAL || errno == ENOSYS) + if (errno == EINVAL || errno == ENOSYS || errno == ENOENT) continue; if (errno == EPERM || errno == EACCES) { @@ -385,8 +385,6 @@ static int run_perf_stat(int argc __used, const char **argv) "\t Consider tweaking" " /proc/sys/kernel/perf_event_paranoid or running as root.", system_wide ? "system-wide " : ""); - } else if (errno == ENOENT) { - error("%s event is not supported. ", event_name(counter)); } else { error("open_counter returned with %d (%s). " "/bin/dmesg may provide additional information.\n", ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [tip:perf/stat] perf stat: Fail softly on unsupported events 2011-04-29 14:27 [tip:perf/stat] perf stat: Fail softly on unsupported events tip-bot for Ingo Molnar @ 2011-04-29 14:34 ` David Ahern 2011-04-29 19:23 ` Ingo Molnar 0 siblings, 1 reply; 4+ messages in thread From: David Ahern @ 2011-04-29 14:34 UTC (permalink / raw) To: mingo, hpa, acme, linux-kernel, fweisbec, a.p.zijlstra, dsahern, tglx, mingo Cc: linux-tip-commits On 04/29/11 08:27, tip-bot for Ingo Molnar wrote: > Commit-ID: 370faf1dd0461ad811852c8abbbcd3d73b1e4fc4 > Gitweb: http://git.kernel.org/tip/370faf1dd0461ad811852c8abbbcd3d73b1e4fc4 > Author: Ingo Molnar <mingo@elte.hu> > AuthorDate: Fri, 29 Apr 2011 16:11:03 +0200 > Committer: Ingo Molnar <mingo@elte.hu> > CommitDate: Fri, 29 Apr 2011 16:22:33 +0200 > > perf stat: Fail softly on unsupported events > > David Ahern reported this perf stat failure: > >> # /tmp/build-perf/perf stat -- sleep 1 >> Error: stalled-cycles-frontend event is not supported. >> Fatal: Not all events could be opened. >> >> This is a Dell R410 with an E5620 processor. > > Fail in a softer fashion on unknown/unsupported events. > > Reported-by: David Ahern <dsahern@gmail.com> > Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> > Cc: Arnaldo Carvalho de Melo <acme@redhat.com> > Cc: Frederic Weisbecker <fweisbec@gmail.com> > Link: http://lkml.kernel.org/n/tip-7y40wib8n006io7hjpn1dsrm@git.kernel.org > Signed-off-by: Ingo Molnar <mingo@elte.hu> > --- > tools/perf/builtin-stat.c | 4 +--- > 1 files changed, 1 insertions(+), 3 deletions(-) > > diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c > index 9e596ab..c8b535b 100644 > --- a/tools/perf/builtin-stat.c > +++ b/tools/perf/builtin-stat.c > @@ -377,7 +377,7 @@ static int run_perf_stat(int argc __used, const char **argv) > > list_for_each_entry(counter, &evsel_list->entries, node) { > if (create_perf_stat_counter(counter) < 0) { > - if (errno == EINVAL || errno == ENOSYS) > + if (errno == EINVAL || errno == ENOSYS || errno == ENOENT) > continue; > > if (errno == EPERM || errno == EACCES) { > @@ -385,8 +385,6 @@ static int run_perf_stat(int argc __used, const char **argv) > "\t Consider tweaking" > " /proc/sys/kernel/perf_event_paranoid or running as root.", > system_wide ? "system-wide " : ""); > - } else if (errno == ENOENT) { > - error("%s event is not supported. ", event_name(counter)); This silently ignores events -- including ones that a user requested. I think a better option is a continue here. /tmp/build-perf/perf stat -- sleep 1 Error: stalled-cycles-frontend event is not supported. Error: stalled-cycles-backend event is not supported. > } else { > error("open_counter returned with %d (%s). " > "/bin/dmesg may provide additional information.\n", ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [tip:perf/stat] perf stat: Fail softly on unsupported events 2011-04-29 14:34 ` David Ahern @ 2011-04-29 19:23 ` Ingo Molnar 2011-04-29 19:29 ` David Ahern 0 siblings, 1 reply; 4+ messages in thread From: Ingo Molnar @ 2011-04-29 19:23 UTC (permalink / raw) To: David Ahern Cc: mingo, hpa, acme, linux-kernel, fweisbec, a.p.zijlstra, tglx, linux-tip-commits * David Ahern <dsahern@gmail.com> wrote: > > > On 04/29/11 08:27, tip-bot for Ingo Molnar wrote: > > Commit-ID: 370faf1dd0461ad811852c8abbbcd3d73b1e4fc4 > > Gitweb: http://git.kernel.org/tip/370faf1dd0461ad811852c8abbbcd3d73b1e4fc4 > > Author: Ingo Molnar <mingo@elte.hu> > > AuthorDate: Fri, 29 Apr 2011 16:11:03 +0200 > > Committer: Ingo Molnar <mingo@elte.hu> > > CommitDate: Fri, 29 Apr 2011 16:22:33 +0200 > > > > perf stat: Fail softly on unsupported events > > > > David Ahern reported this perf stat failure: > > > >> # /tmp/build-perf/perf stat -- sleep 1 > >> Error: stalled-cycles-frontend event is not supported. > >> Fatal: Not all events could be opened. > >> > >> This is a Dell R410 with an E5620 processor. > > > > Fail in a softer fashion on unknown/unsupported events. > > > > Reported-by: David Ahern <dsahern@gmail.com> > > Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> > > Cc: Arnaldo Carvalho de Melo <acme@redhat.com> > > Cc: Frederic Weisbecker <fweisbec@gmail.com> > > Link: http://lkml.kernel.org/n/tip-7y40wib8n006io7hjpn1dsrm@git.kernel.org > > Signed-off-by: Ingo Molnar <mingo@elte.hu> > > --- > > tools/perf/builtin-stat.c | 4 +--- > > 1 files changed, 1 insertions(+), 3 deletions(-) > > > > diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c > > index 9e596ab..c8b535b 100644 > > --- a/tools/perf/builtin-stat.c > > +++ b/tools/perf/builtin-stat.c > > @@ -377,7 +377,7 @@ static int run_perf_stat(int argc __used, const char **argv) > > > > list_for_each_entry(counter, &evsel_list->entries, node) { > > if (create_perf_stat_counter(counter) < 0) { > > - if (errno == EINVAL || errno == ENOSYS) > > + if (errno == EINVAL || errno == ENOSYS || errno == ENOENT) > > continue; > > > > if (errno == EPERM || errno == EACCES) { > > @@ -385,8 +385,6 @@ static int run_perf_stat(int argc __used, const char **argv) > > "\t Consider tweaking" > > " /proc/sys/kernel/perf_event_paranoid or running as root.", > > system_wide ? "system-wide " : ""); > > - } else if (errno == ENOENT) { > > - error("%s event is not supported. ", event_name(counter)); > > This silently ignores events -- including ones that a user requested. I > think a better option is a continue here. > > /tmp/build-perf/perf stat -- sleep 1 > Error: stalled-cycles-frontend event is not supported. > Error: stalled-cycles-backend event is not supported. Ok. Got time to send a patch for that, which prints whichever message you find the most intuitive? Perhaps word it as: Info: stalled-cycles-frontend event is not supported by the kernel to not yell 'error!' at users all the time? Thanks, Ingo ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [tip:perf/stat] perf stat: Fail softly on unsupported events 2011-04-29 19:23 ` Ingo Molnar @ 2011-04-29 19:29 ` David Ahern 0 siblings, 0 replies; 4+ messages in thread From: David Ahern @ 2011-04-29 19:29 UTC (permalink / raw) To: Ingo Molnar Cc: mingo, hpa, acme, linux-kernel, fweisbec, a.p.zijlstra, tglx, linux-tip-commits On 04/29/11 13:23, Ingo Molnar wrote: > > * David Ahern <dsahern@gmail.com> wrote: > >> >> >> On 04/29/11 08:27, tip-bot for Ingo Molnar wrote: >>> Commit-ID: 370faf1dd0461ad811852c8abbbcd3d73b1e4fc4 >>> Gitweb: http://git.kernel.org/tip/370faf1dd0461ad811852c8abbbcd3d73b1e4fc4 >>> Author: Ingo Molnar <mingo@elte.hu> >>> AuthorDate: Fri, 29 Apr 2011 16:11:03 +0200 >>> Committer: Ingo Molnar <mingo@elte.hu> >>> CommitDate: Fri, 29 Apr 2011 16:22:33 +0200 >>> >>> perf stat: Fail softly on unsupported events >>> >>> David Ahern reported this perf stat failure: >>> >>>> # /tmp/build-perf/perf stat -- sleep 1 >>>> Error: stalled-cycles-frontend event is not supported. >>>> Fatal: Not all events could be opened. >>>> >>>> This is a Dell R410 with an E5620 processor. >>> >>> Fail in a softer fashion on unknown/unsupported events. >>> >>> Reported-by: David Ahern <dsahern@gmail.com> >>> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> >>> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> >>> Cc: Frederic Weisbecker <fweisbec@gmail.com> >>> Link: http://lkml.kernel.org/n/tip-7y40wib8n006io7hjpn1dsrm@git.kernel.org >>> Signed-off-by: Ingo Molnar <mingo@elte.hu> >>> --- >>> tools/perf/builtin-stat.c | 4 +--- >>> 1 files changed, 1 insertions(+), 3 deletions(-) >>> >>> diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c >>> index 9e596ab..c8b535b 100644 >>> --- a/tools/perf/builtin-stat.c >>> +++ b/tools/perf/builtin-stat.c >>> @@ -377,7 +377,7 @@ static int run_perf_stat(int argc __used, const char **argv) >>> >>> list_for_each_entry(counter, &evsel_list->entries, node) { >>> if (create_perf_stat_counter(counter) < 0) { >>> - if (errno == EINVAL || errno == ENOSYS) >>> + if (errno == EINVAL || errno == ENOSYS || errno == ENOENT) >>> continue; >>> >>> if (errno == EPERM || errno == EACCES) { >>> @@ -385,8 +385,6 @@ static int run_perf_stat(int argc __used, const char **argv) >>> "\t Consider tweaking" >>> " /proc/sys/kernel/perf_event_paranoid or running as root.", >>> system_wide ? "system-wide " : ""); >>> - } else if (errno == ENOENT) { >>> - error("%s event is not supported. ", event_name(counter)); >> >> This silently ignores events -- including ones that a user requested. I >> think a better option is a continue here. >> >> /tmp/build-perf/perf stat -- sleep 1 >> Error: stalled-cycles-frontend event is not supported. >> Error: stalled-cycles-backend event is not supported. > > Ok. Got time to send a patch for that, which prints whichever message you find > the most intuitive? Perhaps word it as: > > Info: stalled-cycles-frontend event is not supported by the kernel > > to not yell 'error!' at users all the time? Yes, Error is the wrong prefix, unless the user asked for the event. It's also not as simple as a continue; the fd array contains 0 so the command blocks trying to read from fd 0. e.g.: diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c index 2492a0e..bb1c4dc 100644 --- a/tools/perf/builtin-stat.c +++ b/tools/perf/builtin-stat.c @@ -318,7 +318,7 @@ static int read_counter(struct perf_evsel *counter) static int run_perf_stat(int argc __used, const char **argv) { unsigned long long t0, t1; - struct perf_evsel *counter; + struct perf_evsel *counter, *n; int status = 0; int child_ready_pipe[2], go_pipe[2]; const bool forks = (argc > 0); @@ -375,7 +375,7 @@ static int run_perf_stat(int argc __used, const char **argv) close(child_ready_pipe[0]); } - list_for_each_entry(counter, &evsel_list->entries, node) { + list_for_each_entry_safe(counter, n, &evsel_list->entries, node) { if (create_perf_stat_counter(counter) < 0) { if (errno == EINVAL || errno == ENOSYS) continue; @@ -387,6 +387,8 @@ static int run_perf_stat(int argc __used, const char **argv) system_wide ? "system-wide " : ""); } else if (errno == ENOENT) { error("%s event is not supported. ", event_name(counter)); + list_del(&counter->node); + continue; } else { error("open_counter returned with %d (%s). " "/bin/dmesg may provide additional information.\n", That set the xyarray to -1. David > > Thanks, > > Ingo ^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2011-04-29 19:29 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-04-29 14:27 [tip:perf/stat] perf stat: Fail softly on unsupported events tip-bot for Ingo Molnar 2011-04-29 14:34 ` David Ahern 2011-04-29 19:23 ` Ingo Molnar 2011-04-29 19:29 ` David Ahern
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox