lkml.org 
[lkml]   [2008]   [Sep]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [RFC PATCH 1/3] Unified trace buffer

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



\
 
 \ /
  Last update: 2008-09-24 23:21    [from the cache]
©2003-2011 Jasper Spaans