Re: [PATCH v0 27/71] perf evlist: Add 'system_wide' option

From: Adrian Hunter
Date: Thu Dec 12 2013 - 07:22:40 EST


On 11/12/13 21:37, David Ahern wrote:
> On 12/11/13, 5:36 AM, Alexander Shishkin wrote:
>> From: Adrian Hunter <adrian.hunter@xxxxxxxxx>
>>
>> Add an option to cause a selected event
>> to be opened always without a pid when
>> configured by perf_evsel__config().
>>
>> This is needed when using the sched_switch
>> tracepoint to follow object code execution.
>> sched_switch occurs before the task
>> switch and so it cannot record it in a
>> context limited to that task. Note
>> that also means that sched_switch is
>> useless when capturing data per-thread,
>> as is the 'context-switches' software
>> event for the same reason.
>
> This seems like a tailored solution for what is really a generic problem:
> you need events to have different attributes -- a mix of system wide, task
> based, with or without callchains and other sample options.

Actually in this case it is not the attribute but another parameter of the
perf_event_open syscall, namely the pid. The effect of that is that there
are potentially fewer file descriptors needed for that event i.e. just 1 per
cpu compared with 1 per cpu per thread.

This is a generic solution for the case where you want to mix an event that
is not tied to a process, with other events that are.

If it were the attribute it would be easy because 'attr' is a member of
'struct evsel' so it can simply be changed directly.

--
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/