Re: [RFC PATCH 1/3] Unified trace buffer
From: Steven Rostedt
Date: Wed Sep 24 2008 - 17:18:23 EST
On Wed, 24 Sep 2008, Martin Bligh wrote:
>
> How about we just steal 5 bits from the timestamp to indicate event
> lengths up to 32 bytes, and if it's 0, that means there's a length
> field following? Also that'd mean you could use a longer length field
> and get beyond 256 bytes to 4096, without impacting most events.
>
> struct {
> u32 length:5, time_delta:27;
I think you mean this is where length == 0 ;-)
> u16 length;
> u8 buf[];
> };
>
> struct {
> u32 length:5, time_delta:27; /* where length == 0 */
> u8 buf[];
> };
>
> Obviously we could less than 5 bits, even just 1 for a flag ...
>
OK then. Since I like the idea of aligning the buffer to 8 bytes, we can
always shift the length field by 3. So...
For records 256 bytes or less, we only have:
struct {
u32 length:5, time_delta: 27;
u8 buf[];
};
For 257 bytes or more we have:
struct {
u32 length:5 (=0), time_delta: 27;
u16 large_length;
u8 buf[];
};
This is what you want?
-- Steve
--
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/