Re: [PATCH 00/13] perf_events: add support for sampling takenbranches (v3)

From: Stephane Eranian
Date: Tue Jan 24 2012 - 12:42:22 EST


On Tue, Jan 24, 2012 at 5:08 PM, David Ahern <dsahern@xxxxxxxxx> wrote:
>
> On 01/24/2012 08:39 AM, Stephane Eranian wrote:
>> Hi,
>>
>> The branch stack sampling patch exposes a flaw in the sampling
>> buffer format as currently exported by the kernel.
>>
>> In the current format, sample records (RECORD_SAMPLE) are NOT
>> self-describing. That means that by looking at the fixed size header, it
>> is not possible to determine which event caused the sample to be recorded
>> and what's in the body of the variable length sample.
>>
>> Such introspection is only possible once we know the event unique id
>> (PERF_SAMPLE_ID). But to get the event ID, we need to parse the
>> sample. But, given that a sample has a variable length, there is no
>> predefined position for that ID in the sample. You have a chicken
>> and egg problem here. There is no room left in the fixed size header
>> to fit this in.
>
> I brought this up last Fall as well. As I recall the response is to move
> each sample_type based stream into its own data file and then merge the
> data files while processing.

By data stream, you're talking about actual sampling buffer.
Sampling on 10 events, means 10 sampling buffers. If you reach
the rlimit on it, you need to decrease buffer size, and therefore
you increase overhead.

Moreover, I don't think perf record is well equipped to handle this.
--
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/