On Wed, Oct 04, 2017 at 12:30:52PM +0200, Jiri Olsa wrote:
> 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

I tried similar patches, but I always ran into more complex
situations where it still matched incorrectly.

e.g. try it with cpu/uops_executed.core,... vs uops_executed.core

The only real fix would be probably to add some unique 
prefix for BPF, but that would break all existing users.

-Andi

Reply via email to