[ltt-dev] LTTng new trace format, cleanup, kernel 2.6.27 support

Mathieu Desnoyers compudj at krystal.dyndns.org
Sat Oct 11 13:25:02 EDT 2008


I just released LTTng 0.39 and lttv 0.11.1, trace format 2.1, which
fixes the subbuffer header 32-64 bits portability.

I do not use packed structures anymore since trace format 2.0 because
gcc generates inefficient code (at least on mips and powerpc). However,
I make sure the fields fall on their natural alignment within the
structure so the compiler does not have to add ABI-specific padding. I
also added a header_end[0] field at the end of the header to be able to
easily compute the header size without including any supplementary
padding the compiler would add at the end of the structure.

Mathieu

* Mathieu Desnoyers (compudj at krystal.dyndns.org) wrote:
> Hi everyone,
> 
> I just cleaned up the LTTng trace format heavily, got rid of the
> heartbeat timer (by checking for overflow at the tracing site), got rid
> of the "special" compact channel; it removed about 5 FIXMEs in LTTng
> (cpu hotplug and compact channel related). Everything is compact now :
> 
> Event header is :
> 
> (32-bits alignment)
> 27-bits TSC
> 5-bits event ID
>  ID #31 reserved to specify extended event ID
>  ID #30 reserved to specify both ext. event ID and event size
>  ID #29 reserved to specify ext. event ID, event size and ext. TSC
> <ext.>
> 16-bits event ID (opt)
> 16-bits event size (opt) size = 65535 to specify large event size
> 32-bits large event size (opt)
> 64-bits TSC (opt) (aligned on sizeof (void *))
> (event payload aligned on the maximum alignment required within the
>  payload)
> 
> This is much more compact than the previous format, and permits a
> "tracer debug mode" in menuconfig which enables the "event size" field,
> which helps cross-checking the size expected by the userspace tool and
> the size written by the kernel.
> 
> Note that this "event size" field can eventually be enabled on a
> per-event or per-channel basis. This will probably be useful to encode
> "binary blobs"...
> 
> I also cleanup up the subbuffer header to make is much smaller than the
> previous one by removing unneeded information.
> 
> I renamed the "facilities" channel to a better name : "metadata".  It
> contains marker descriptions.
> 
> The trace major number is bumped to "2" and is completely incompatible
> with old LTTV. New version are LTTng 0.38 (for Linux 2.6.27) and LTTV
> 0.11.0.
> 
> Testing especially taking traces and reading them across different
> architectures is welcome (e.g. trace taken on powerpc 32, lttv running
> on x86_64).
> 
> Mathieu
> 
> 
> -- 
> Mathieu Desnoyers
> OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68
> 
> _______________________________________________
> ltt-dev mailing list
> ltt-dev at lists.casi.polymtl.ca
> http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
> 

-- 
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68




More information about the lttng-dev mailing list