Re: [PATCH 26/31] perf tools: Support perf event alias name

From: Namhyung Kim
Date: Thu Oct 22 2015 - 03:53:39 EST


On Thu, Oct 22, 2015 at 4:29 PM, Wangnan (F) <wangnan0@xxxxxxxxxx> wrote:
>
>
> On 2015/10/22 15:16, Namhyung Kim wrote:
>>
>> Hi,
>>
>> On Wed, Oct 21, 2015 at 10:00 PM, Wangnan (F) <wangnan0@xxxxxxxxxx> wrote:
>>>
>>>
>>> On 2015/10/21 16:53, Namhyung Kim wrote:
>>>>
>>>> Hi,
>>>>
>>>> On Wed, Oct 14, 2015 at 12:41:37PM +0000, Wang Nan wrote:
>>>>>
>>>>> From: He Kuang <hekuang@xxxxxxxxxx>
>>>>>
>>>>> 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:
>>>>>
>>>>> # perf record -e mypmu=cycles ...
>>>>>
>>>>> To allow parser refer to existing event selecter, pass event list to
>>>>> 'struct parse_events_evlist'. perf_evlist__find_evsel_by_alias() is
>>>>> introduced to get evsel through its alias.
>>>>
>>>> What about using event name directly? I guess the alias name is used
>>>> only to refer an event so it'd be better to use the event name.
>>>> Anyway we need alias as well when event has no name or name is complex.
>>>
>>>
>>> It is possible to trigger two perf events with same PMU but
>>> different config options:
>>>
>>> # perf record -e cycles/period=9999/ -e cycles/period=99999/ -a sleep 1
>>>
>>> In this case the name of events are:
>>>
>>> cycles/period=9999/ `
>>> cycles/period=99999/
>>>
>>> Using it in perf cmdline is painful:
>>>
>>> # perf record -e cycles/period=9999/ -e cycles/period=99999/ -e
>>> bpf_program.c/myevent=cycles/period=9999//...
>>
>> I understand the need of using aliases but I think it's more natural
>> to use event name for simple cases..
>
>
> I will consider this. However, if we allow using event name directly like
> this:
>
> # perf record -e cycles -e test_pmu.c/myevent=cycles/ ...
>
> Then two '-e' seems redundant, right? Why not directly using:
>
> # perf record -e test_pmu.c/myevent=cycles/ ...
>
> and make perf creates cycles event for test_pmu.c?
>
> We can make syntax like
>
> # perf record -e test_pmu.c/myevent=cycles/ ...
>
> as a syntax sugar of
>
> # perf record -e randomname=cycles -e test_pmu.c/myevent=randomname/ ...
>
> and don't need to find evsel through their names if alias not exist.
>
> So this is a new feature, and worth another patch.
>
> Thought?

Not sure it's worth. It can confuse users IMHO.

Isn't it enough to give them in a single argument?

# perf record -e cycles,test_pmu.c/myevent=cycles/

Thanks,
Namhyung
--
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/