Re: [PATCH v3]: perf record: enable arbitrary event names thru name= modifier

From: Arnaldo Carvalho de Melo
Date: Mon Jun 04 2018 - 10:58:52 EST


Em Mon, Jun 04, 2018 at 05:51:03PM +0300, Alexey Budankov escreveu:
> Hi,
> On 04.06.2018 17:23, Arnaldo Carvalho de Melo wrote:
> > Em Mon, Jun 04, 2018 at 05:19:11PM +0300, Alexey Budankov escreveu:
> >> Hi,
> >>
> >> On 04.06.2018 16:58, Arnaldo Carvalho de Melo wrote:
> >>> Em Mon, Jun 04, 2018 at 09:56:02AM +0200, Jiri Olsa escreveu:
> >>>> On Mon, Jun 04, 2018 at 09:50:56AM +0300, Alexey Budankov wrote:
> >>>>> Enable complex event names containing [.:=,] symbols to be encoded into Perf
> >>>>> trace using name= modifier e.g. like this:
> >>>
> >>>>> perf record -e cpu/name=\'OFFCORE_RESPONSE:request=DEMAND_RFO:response=L3_HIT.SNOOP_HITM\',\
> >>>>> period=0x3567e0,event=0x3c,cmask=0x1/Duk ./futex
> >>>
> >>>>> Below is how it looks like in the report output. Please note explicit escaped
> >>>>> quoting at cmdline string in the header so that thestring can be directly reused
> >>>>> for another collection in shell:
> >>>
> >>> Applied, but there are other places where we show event names, such as:
> >>>
> >>> [root@jouet ~]# perf record -e cpu/name=\'OFFCORE_RESPONSE:request=DEMAND_RFO:response=L3_HIT.SNOOP_HITM\',period=0x3567e0,event=0x3c,cmask=0x1/Duk
> >>> ^C[ perf record: Woken up 1 times to write data ]
> >>> [ perf record: Captured and wrote 1.599 MB perf.data (704 samples) ]
> >>>
> >>> [root@jouet ~]# perf evlist
> >>> OFFCORE_RESPONSE:request=DEMAND_RFO:response=L3_HIT.SNOOP_HITM
> >>> [root@jouet ~]# perf evlist -v
> >>> OFFCORE_RESPONSE:request=DEMAND_RFO:response=L3_HIT.SNOOP_HITM: type: 4, size: 112, config: 0x100003c, { sample_period, sample_freq }: 3500000, sample_type: IP|TID|TIME|CPU, disabled: 1, inherit: 1, pinned: 1, exclude_hv: 1, mmap: 1, comm: 1, task: 1, sample_id_all: 1, mmap2: 1, comm_exec: 1
> >>> [root@jouet ~]#
> >>>
> >>> That I used to check if the period, etc were correctly set, etc. Perhaps
> >>> we should add that \'\' there as well?
> >>
> >> Like this?
> >>
> >> name: 'OFFCORE_RESPONSE:request=DEMAND_RFO:response=L3_HIT.SNOOP_HITM', type: 4, size: 112, config: 0x100003c, { sample_period, sample_freq }: 3500000, sample_type: IP|TID|TIME|CPU, disabled: 1, inherit: 1, pinned: 1, exclude_hv: 1, mmap: 1, comm: 1, task: 1, sample_id_all: 1, mmap2: 1, comm_exec: 1
> >
> > Nope, I mean with the same intent you had when showing escaped single
> > quotes in the 'perf report' header, that users would copy'n'paste and
> > get something that works on the command line?
>
> Well ok, if there are other cases aside perf report that tool shows full
> command line ready for reusing then it definitely makes sense to print

Ok, lets leave it like you did, i.e. just when command lines appear and
people are likely to copy'n'paste them to repeat it.

> event names quoted there. If such cases were pointed out then they also
> could be addressed along with the unit/regression testing mentioned above.

So lests stick to just the unit/regression testing, can you take a look
at that?

- Arnaldo