Re: [RFC PATCH 2/2] perf script: Print bpf-output events in 'perf script'

From: Arnaldo Carvalho de Melo
Date: Thu Feb 25 2016 - 07:49:33 EST


Em Thu, Feb 25, 2016 at 12:11:11PM +0800, Wangnan (F) escreveu:
>
>
> On 2016/2/24 23:19, Arnaldo Carvalho de Melo wrote:
> >Em Wed, Feb 24, 2016 at 11:20:45AM +0000, Wang Nan escreveu:
> >>This patch allows 'perf script' output messages from BPF program.
> >>For example, use test_bpf_output_3.c at the end of this commit
> >>message,
> >>
> >> # ./perf record -e bpf-output/no-inherit,name=evt/ \
> >> -e ./test_bpf_output_3.c/map:channel.event=evt/ \
> >> usleep 100000
> >Trying to test this with 'perf trace', i.e. to shortcircuit record +
> >analysis:
> >
> >[root@jouet bpf]# perf trace -a --ev bpf-output/no-inherit,name=evt/ --ev ./test_bpf_output_3.c/map:channel.event=evt/ --ev 'perf_bpf_probe:*' usleep 100000
> >Failed to set filter "common_pid != 23954" on event evt with 22 (Invalid argument)
> >
> >Can't we set tracepoint filters on these events?

> No we can't. filters can only be set to tracepoint events, but
> bpf-output is a software event.

Gack, should've checked that, I somehow thought that it was a tracepoint
event of some sort.

> In addition, you don't need
> ... --ev 'perf_bpf_probe:*' ...
>
> because they should be already collected by '--ev ./test_bpf_output_3.c'.

Right, that was me trying to be clever 8-)

> You don't see them because the two kprobe events are filtered out by
> BPF program. See 'return 0' in func.

Thanks for reminding about this part...

> Thank you.