Re: [PATCH] perf parse: Allow names to start with digits

From: Jiri Olsa
Date: Sat Jul 02 2022 - 11:48:13 EST


On Sat, Jul 02, 2022 at 09:24:24AM -0300, Arnaldo Carvalho de Melo wrote:
> Em Sat, Jul 02, 2022 at 06:49:31PM +0900, Dominique Martinet escreveu:
> > Hello,
> >
> > just making sure my mail didn't get lost -- would anyone have time to
> > look at this?
> >
> > I don't mind if it's slow or another solution is taken, I'd just like to
> > be able to use 9p probes with perf eventually :)
>
> Jiri, seems ok, can you please review?

ah right, sorry, I remember looking on that before,
but forgot to respond

>
> Thanks,
>
> - Arnaldo
>
> > Thanks!
> >
> > Dominique Martinet wrote on Sun, Jun 12, 2022 at 03:15:08PM +0900:
> > > Tracepoints can start with digits, although we don't have many of these:
> > >
> > > $ rg -g '*.h' '\bTRACE_EVENT\([0-9]'
> > > net/mac802154/trace.h
> > > 53:TRACE_EVENT(802154_drv_return_int,
> > > ...
> > >
> > > net/ieee802154/trace.h
> > > 66:TRACE_EVENT(802154_rdev_add_virtual_intf,
> > > ...
> > >
> > > include/trace/events/9p.h
> > > 124:TRACE_EVENT(9p_client_req,
> > > ...
> > >
> > > Just allow names to start with digits too so e.g. perf probe -e '9p:*'
> > > works
> > >
> > > Signed-off-by: Dominique Martinet <asmadeus@xxxxxxxxxxxxx>
> > > ---
> > > tools/perf/util/parse-events.l | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/tools/perf/util/parse-events.l b/tools/perf/util/parse-events.l
> > > index 5b6e4b5249cf..4133d6950d29 100644
> > > --- a/tools/perf/util/parse-events.l
> > > +++ b/tools/perf/util/parse-events.l
> > > @@ -211,7 +211,7 @@ bpf_source [^,{}]+\.c[a-zA-Z0-9._]*
> > > num_dec [0-9]+
> > > num_hex 0x[a-fA-F0-9]+
> > > num_raw_hex [a-fA-F0-9]+
> > > -name [a-zA-Z_*?\[\]][a-zA-Z0-9_*?.\[\]!]*
> > > +name [a-zA-Z0-9_*?\[\]][a-zA-Z0-9_*?.\[\]!]*

I thought it'd clash with events like cpu/event=3/,
but lexer check numbers first, so we're fine there

it smells like it could break some events, but I couldn't
find any case of that

could you please at least add tests to tests/parse-events.c
for such case?

thanks,
jirka

> > > name_tag [\'][a-zA-Z_*?\[\]][a-zA-Z0-9_*?\-,\.\[\]:=]*[\']
> > > name_minus [a-zA-Z_*?][a-zA-Z0-9\-_*?.:]*
> > > drv_cfg_term [a-zA-Z0-9_\.]+(=[a-zA-Z0-9_*?\.:]+)?
>
> --
>
> - Arnaldo