On Tue, Oct 03, 2017 at 01:06:05PM -0300, Arnaldo Carvalho de Melo wrote: > Em Tue, Sep 12, 2017 at 12:56:43PM -0700, Andi Kleen escreveu: > > From: Andi Kleen <a...@linux.intel.com> > > > > There are still problems with BPF misinterpreting some events > > that include .c. An earlier fix made it work for stand alone > > aliases, but it still fails for more complex constructs. > > Hi Wang, Jiri, > > Can you please take a look at this and see if there is something > we can do to help Andi? > > - Arnaldo > > > REJECT keeps trying and trying a shorter string until > > .c is matched and it appears like a valid BPF path. > > > > % perf stat -e cpu/uops_executed.core,cmask=1/ true > > bpf: builtin compilation failed: -95, try external compiler > > ERROR: problems with path cpu/uops_executed.c: No such file or directory > > event syntax error: 'cpu/uops_executed.core,cmask=1/' > > \___ Failed to load cpu/uops_executed.c from source: > > Error when compiling BPF scriptlet > > > > I tried to fix it, but it exceeds my flex knowledge, because > > REJECT does not interact well with BEGIN states. > > > > The BPF syntax in its current form really causes an ambigious > > grammar.
right, it looks like we allow whole path (including / char) for BPF file, which messes up with out pmu/.../ syntax do we need that? (Cc-ed some bpf folks) if not attached patch seems to fix things.. otherwise we need to come up with another fix thanks, jirka --- diff --git a/tools/perf/util/parse-events.l b/tools/perf/util/parse-events.l index ea2426daf7e8..e3c602f4bbbf 100644 --- a/tools/perf/util/parse-events.l +++ b/tools/perf/util/parse-events.l @@ -151,8 +151,8 @@ do { \ group [^,{}/]*[{][^}]*[}][^,{}/]* event_pmu [^,{}/]+[/][^/]*[/][^,{}/]* event [^,{}/]+ -bpf_object [^,{}]+\.(o|bpf)[a-zA-Z0-9._]* -bpf_source [^,{}]+\.c[a-zA-Z0-9._]* +bpf_object [^,{}/]+\.(o|bpf)[a-zA-Z0-9._]* +bpf_source [^,{}/]+\.c[a-zA-Z0-9._]* num_dec [0-9]+ num_hex 0x[a-fA-F0-9]+