• W
    perf jevents: Handle events including .c and .o · 2d470b62
    Wang Nan 提交于
    This patch helps with Sukadev's vendor event tree where such events can happen.
    
    >From Andi Kleen:
     Any event including a .c/.o/.bpf currently triggers BPF compilation or loading
     and then an error. This can happen for some Intel vendor events, which cannot
     be used.
    
    This patch fixes this problem by forbidding BPF file patch containing '{', '}'
    and ',', make sure flex consumes the leading '{', instead of matching it using
    a BPF file path.
    
    Tested result:
    
      $ perf stat -e '{unc_p_clockticks,unc_p_power_state_occupancy.cores_c0}' -a -I 1000
      invalid or unsupported event: '{unc_p_clockticks,unc_p_power_state_occupancy.cores_c0}'
      Run 'perf list' for a list of valid events
      (as expected, interperted as event)
    
      $ perf stat -e 'aaa.c' -a -I 1000
      ERROR: problems with path aaa.c: No such file or directory
      (as expected, interpreted as BPF source)
    
      $ perf stat -e 'aaa.ccc' -a -I 1000
      invalid or unsupported event: 'aaa.ccc'
      (as expected, interpreted as event)
    
      $ perf stat -e '{aaa.c}' -a -I 1000
      ERROR: problems with path aaa.c: No such file or directory
      event syntax error: '{aaa.c}'
      <SKIP>
      (as expected, interpreted as BPF source)
    
      $ perf stat -e '{cycles,aaa.c}' -a -I 1000
      ERROR: problems with path aaa.c: No such file or directory
      event syntax error: '{cycles,aaa.c}'
      (as expected, interpreted as BPF source)
    Signed-off-by: NWang Nan <wangnan0@huawei.com>
    Tested-by: NArnaldo Carvalho de Melo <acme@redhat.com>
    Reported-by: NAndi Kleen <ak@linux.intel.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
    Cc: Zefan Li <lizefan@huawei.com>
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1475900185-37967-1-git-send-email-wangnan0@huawei.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
    2d470b62
parse-events.l 9.8 KB