Re: [PATCH v2 4/5] perf record: add meta-data support for pipe-mode

From: David Ahern
Date: Thu May 24 2012 - 11:36:36 EST


On 5/22/12 11:51 AM, Stephane Eranian wrote:
The problem is that the headers as they are written to the file need
seeking in the file to update the offset table. That is NOT possible when
you operate in pipe mode. As such you need to inject the header infos
very much like kernel PERF_RECORD_*. That is also why you have
perf inject -b. Buildids are added at the end of the run in file mode,
and that's another seek to the offset table if I recall correctly.

Perhaps I am being too simple minded here, but why not dump the features to the pipe as a series of structs when the perf session is created?

struct pipe_data {
u32 length;
u32 type;
char data[0];
}

It would require the features to be written to a buffer first to get the length, but that's manageable without too much code change. Endianness would need to be handled -- maybe a u8 flags at the beginning.

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