Re: [PATCH v2 2/2] perf: Userspace event
From: Namhyung Kim
Date: Fri Sep 26 2014 - 02:23:11 EST
On Thu, 25 Sep 2014 13:45:05 +0100, Pawel Moll wrote:
> On Wed, 2014-09-24 at 07:07 +0100, Namhyung Kim 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.
> You're right. I needed a different SW type in one of my early
> prototypes, but it's not the case any more. Consider it gone.
>> 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.
> Fine with me. If no one objects, I'm more than happy to use
> PERF_RECORD_UEVENT = 11 for it.
>> 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.
> Are you saying to drop even the "type 0 means zero-terminated string"
> definition, even if everything else is up to the user? I quite like that
> idea, especially combined with write()ing to the perf_fd (it is very
> much like trace_marker then, which is beautiful in its simplicity), but
> the feelings are not that strong to fight a war over it.
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/