Messages in this thread | | | Date | Fri, 10 Oct 2008 19:34:29 -0400 | From | Mathieu Desnoyers <> | Subject | LTTng new trace format, cleanup, kernel 2.6.27 support |
| |
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
| |