On 11/29/2011 06:26 PM, Stefan Hajnoczi wrote:
On Tue, Nov 29, 2011 at 12:35 PM, Markus Armbruster<arm...@redhat.com>  wrote:
Stefan Hajnoczi<stefa...@gmail.com>  writes:

[...]
So forget I said "self-describing" :).  I think the only changes from
the v1 format we need are:

1. New magic number to mark v2 format.

2. Trace records are no longer fixed-length, they include a size field:

typedef struct {
     uint32_t length; /* in bytes */
     uint32_t reserved; /* unused */
     uint64_t event;
     uint64_t timestamp_ns;
     uint8_t arguments[];
} TraceRecord;

3. Strings are serialized like this:

uint16_t length;
char chars[length];

16 bit length?  Sure you want that?

You're right, it's more future-proof to use a larger type.  Since I
said uint32_t length in TraceRecord, uint32_t here would work well.

Makes sense to store size info only for strings as long as we rely on trace-events file to identify other meta-data about trace-events.

thanks,
Harsh


Stefan



Reply via email to