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    [W:0.019 / U:49.448 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site