Re: [PATCH v5 08/14] perf tools: Support perf event alias name

From: Wangnan (F)
Date: Tue Dec 15 2015 - 20:51:10 EST




On 2015/12/15 21:18, Jiri Olsa wrote:
On Mon, Dec 14, 2015 at 10:39:17AM +0000, Wang Nan wrote:
From: He Kuang <hekuang@xxxxxxxxxx>

This patch is useful when trying to pass a perf event to BPF map.
Before this patch we are unable to pass an event with config term to
BPF maps. For example:

# perf record -a -e cycles/no-inherit,period=0x7fffffffffffffff/ \
-e './test_bpf_map_2.c/maps:pmu_map.event=cycles/no-inherit,period=0x7fffffffffffffff//' ls /
event syntax error: '..ps:pmu_map.event=cycles/'
\___ Event not found for map setting

Because those '/' and ',' embarrass parser.
we already have 'name=' term, but it's only for pmu events,
so I think your solution is better

Thanks.

This patch adds new bison rules for specifying an alias name to a perf
event, which allows cmdline refer to previous defined perf event through
its name. With this patch user can give alias name to a perf event using
following cmdline. The above goal can be achieved using:

# perf record -a -e cyc=cycles/no-inherit,period=0x7fffffffffffffff/ \
-e './test_bpf_map_2.c/maps:pmu_map.event=cyc/' ls /

so this alias should only help as a quick pointer
to setup the record session, right?

Yes.

I'm not sure we want to see it as a part of name being stored
to perf.data and displayed by perf report and stat

$ ./perf stat -e cyc=cycles ls

Performance counter stats for 'ls':

2,638,646 cyc=cycles

0.001111614 seconds time elapsed

but I guess when you probably have a reason to use that
you want to see it in your report.. just a thought ;-)

I thought about this problem. It seems useful. In following patches we will
support BPF output. Thinking about this case:

# perf record -a -i -e a=bpf-output -e b=bpf-output \
-e mybpf.c/dataA=a,dataB=b/ ...

Here we pass two bpf-output events to the BPF script, they have different
meaning. For example, 'a' reports instructions costed by one function, 'b'
reports time between two events. We use CTF python binding to deal with
this report. Then aliases is a indicator to tell us which event is for what.
Without them we have to put some magic number in output data.

Thank you.

anyway acking the change

Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>

thanks,
jirka


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/