Em Wed, Oct 05, 2016 at 12:47:10PM -0700, Andi Kleen escreveu:
> From: Andi Kleen <[email protected]>
>
> This is a generic bug fix, but it helps with Sukadev's JSON event tree
> where such events can happen.
>
> Any event inclduing a .c/.o/.bpf currently triggers BPF compilation or loading
> and then an error. This can happen for some Intel JSON events, which cannot
> be used.
>
> Fix the scanner to only match for .o or .c or .bpf at the end.
> This will prevent loading multiple BPF scripts separated with comma,
> but I assume this is acceptable.
So, I tried it with the example provided in the thread for a previous
version of this patch (IIRC) and it still fails:
[acme@jouet linux]$ perf stat -e
'{unc_p_clockticks,unc_p_power_state_occupancy.cores_c0}' -a -I 1000
ERROR: problems with path {unc_p_clockticks,unc_p_power_state_occupancy.c: No
such file or directory
event syntax error: '{unc_p_clockticks,unc_p_power_state_occupancy.cores_c0}'
\___ Failed to load
{unc_p_clockticks,unc_p_power_state_occupancy.c from source: Error when
compiling BPF scriptlet
(add -v to see detail)
Run 'perf list' for a list of valid events
Usage: perf stat [<options>] [<command>]
-e, --event <event> event selector. use 'perf list' to list available
events
[acme@jouet linux]$
And with another event that for sure is available on this machine:
[acme@jouet linux]$ perf stat -e '{uops_executed.core_cycles_ge_2}' -I 1000
usleep 10
ERROR: problems with path {uops_executed.c: No such file or directory
event syntax error: '{uops_executed.core_cycles_ge_2}'
\___ Failed to load {uops_executed.c from source: Error
when compiling BPF scriptlet
(add -v to see detail)
Run 'perf list' for a list of valid events
Usage: perf stat [<options>] [<command>]
-e, --event <event> event selector. use 'perf list' to list available
events
[acme@jouet linux]$
I thought this was due to the Makefile not noticing the change in the .l files,
but I made
sure I deleted the build dir and rebuilt from scratch, same problem.
- Arnaldo
> Cc: [email protected]
> Cc: [email protected]
> Signed-off-by: Andi Kleen <[email protected]>
> ---
> tools/perf/util/parse-events.l | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/tools/perf/util/parse-events.l b/tools/perf/util/parse-events.l
> index 9f43fda2570f..377147088a46 100644
> --- a/tools/perf/util/parse-events.l
> +++ b/tools/perf/util/parse-events.l
> @@ -183,8 +183,8 @@ modifier_bp [rwx]{1,3}
> }
>
> {event_pmu} |
> -{bpf_object} |
> -{bpf_source} |
> +({bpf_object}$) |
> +({bpf_source}$) |
> {event} {
> BEGIN(INITIAL);
> REWIND(1);
> --
> 2.5.5