Messages in this thread Patch in this message | | | Subject | Re: [PATCH] perf, tools: Handle events including .c and .o | From | "Wangnan (F)" <> | Date | Sun, 18 Sep 2016 18:20:04 +0800 |
| |
On 2016/9/18 9:02, Andi Kleen wrote: > From: Andi Kleen <ak@linux.intel.com> > > 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@huawei.com > Cc: sukadev@linux.vnet.ibm.com > Signed-off-by: Andi Kleen <ak@linux.intel.com>
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?
> --- > 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 7a2519435da0..64ca26e4ed2d 100644 > --- a/tools/perf/util/parse-events.l > +++ b/tools/perf/util/parse-events.l > @@ -162,8 +162,8 @@ modifier_bp [rwx]{1,3} > } > > {event_pmu} | > -{bpf_object} | > -{bpf_source} | > +({bpf_object}$) | > +({bpf_source}$) |
What about putting '$' at the definition of bpf_xxx like this?
diff --git a/tools/perf/util/parse-events.l b/tools/perf/util/parse-events.l index 9f43fda..d9ff690 100644 --- a/tools/perf/util/parse-events.l +++ b/tools/perf/util/parse-events.l @@ -136,8 +136,8 @@ do { \ group [^,{}/]*[{][^}]*[}][^,{}/]* event_pmu [^,{}/]+[/][^/]*[/][^,{}/]* event [^,{}/]+ -bpf_object .*\.(o|bpf) -bpf_source .*\.c +bpf_object .*\.(o|bpf)$ +bpf_source .*\.c$
num_dec [0-9]+ num_hex 0x[a-fA-F0-9]+ Thank you.
> {event} { > BEGIN(INITIAL); > REWIND(1);
| |