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

From: Arnaldo Carvalho de Melo
Date: Fri Feb 12 2016 - 10:45:28 EST


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'.

But perhaps it would be better as:

'stack-size' can only be used when sampling.

Or even more verbose:

The 'stack-size' can only be configured when sampling, not when just
counting events.

No?

- Arnaldo