Re: [PATCH v2 2/2] perf: Userspace event

From: Namhyung Kim
Date: Fri Sep 26 2014 - 02:36:48 EST




Hi Ingo,

On Wed, 24 Sep 2014 09:20:17 +0200, Ingo Molnar wrote:
> * Namhyung Kim <namhyung-DgEjT+Ai2ygdnm+yROfE0A@xxxxxxxxxxxxxxxx> wrote:
>
>> On Tue, 23 Sep 2014 18:03:07 +0100, Pawel Moll wrote:
>> > This patch adds a new PERF_COUNT_SW_UEVENT software event
>> > and a related PERF_SAMPLE_UEVENT sample. User can now
>> > write to the the perf file descriptor, injecting such
>> > event in the perf buffer.
>>
>> It seems the PERF_SAMPLE_UEVENT sample can be injected to any event. So
>> why the PERF_COUNT_SW_UEVENT is needed? At least one can use the
>> SW_DUMMY event for that purpose.
>>
>> Also I think it'd be better to be a record type (PERF_RECORD_XXX)
>> instead of a sample flag (PERF_SAMPLE_XXX). In perf tools, we already
>> use perf_user_event_type for synthesized userspace events. This way it
>> can avoid unnecessary sample processing for userspace events.
>>
>> For contents, I prefer to give complete control to users - kernel
>> doesn't need to care about it other than its size. If one just wants to
>> use strings only, she can write them directly. If others want to mix
>> different types of data, they might need to define a data format for
>> their use.
>
> It would also be nice to add support for this to tools/perf/ (so
> that 'trace' displays such entries in a perf.data), with a
> minimum testcase for 'perf test' as well.
>
> Perhaps also add a small sub-utility to inject such events from
> the command line, such as:
>
> trace user-event "this is a test message"
>
> ('trace' is a shortcut command for 'perf trace'.)
>
> It would have a usecase straight away: perf could be used to
> easily trace script execution for example.

It looks like what trace-marker in ftrace does.. We might connect
output of the trace marker into a perf event somehow.

Thanks,
Namhyung


>
> For that probably another mode of user event generation would be
> needed as well: a process that has no access to any perf fds
> should still be able to generate user events, if the
> profiling/tracing context has permitted that. In this case we'd
> inject the event either into the first, or all currently active
> events (but only once per output buffer, or so).
>
> Thanks,
>
> Ingo

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