Re: [PATCH] perf, tools: Handle events including .c and .o

From: Andi Kleen
Date: Sun Sep 18 2016 - 10:56:17 EST


On Sun, Sep 18, 2016 at 06:20:04PM +0800, Wangnan (F) wrote:
>
>
> On 2016/9/18 9:02, Andi Kleen wrote:
> > From: Andi Kleen <ak@xxxxxxxxxxxxxxx>
> >
> > 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.
> >
> > Cc: wangnan0@xxxxxxxxxx
> > Cc: sukadev@xxxxxxxxxxxxxxxxxx
> > Signed-off-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>
>
> I tested '.c' in middle of an event:
>
> # perf trace --event 'aaa.ccc'
> invalid or unsupported event: 'aaa.ccc'
> Run 'perf list' for a list of valid events
> ...
>
> It is not recongnized as a BPF source.
>
> So could you please provide an example to show how
> this potential bug breaks the parsing of new events?

This is with the upcoming JSON uncore events:

$ 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

-Andi