Re: [PATCH 10/54] perf stat: Forbid user passing improper config terms

From: Jiri Olsa
Date: Fri Feb 12 2016 - 10:51:16 EST


On Fri, Feb 12, 2016 at 01:45:17PM -0200, Arnaldo Carvalho de Melo wrote:
> Em Fri, Feb 12, 2016 at 02:49:08PM +0100, Jiri Olsa escreveu:
> > On Fri, Feb 05, 2016 at 02:01:35PM +0000, Wang Nan wrote:
> > > 'perf stat' accepts some config terms but doesn't apply them. For
> > > example:
> > >
> > > # perf stat -e 'instructions/no-inherit/' -e 'instructions/inherit/' bash
> > > # ls
> > > # exit
> > >
> > > Performance counter stats for 'bash':
> > >
> > > 266258061 instructions/no-inherit/
> > > 266258061 instructions/inherit/
> >
> > hum, but we support no-/inherit in stat, it'd be better to
> > implement this one for stat IMO
> >
> >
> > >
> > > 1.402183915 seconds time elapsed
> > >
> > > The result is confusing, because user may expect the first
> > > 'instructions' event exclude the 'ls' command.
> > >
> > > This patch forbit most of those config terms for 'perf stat'.
> > >
> > > Result:
> > >
> > > # ./perf stat -e 'instructions/no-inherit/' -e 'instructions/inherit/' bash
> > > event syntax error: 'instructions/no-inherit/'
> > > \___ Don't use record mode only config terms
> >
> > and there's bunch of others which are sampling related:
> > PARSE_EVENTS__TERM_TYPE_SAMPLE_*
> > PERF_EVSEL__CONFIG_TERM_CALLGRAPH
> > PERF_EVSEL__CONFIG_TERM_STACK_USER
> > ...
> >
> > probably all from get_config_terms apart from the 'inherot' ones,
> > which should end up with the error message, which could be more
> > user friendly like:
> >
> > - Can't use stack-size term in stat event.
>
> 'stat' event? If this is the term you want to use maybe:
>
> 'stack-size' is not usable in 'perf stat'.

ok I vote for this one then ^^^ ;-)

jirka