LTTng new trace format, cleanup, kernel 2.6.27 support

From: Mathieu Desnoyers
Date: Fri Oct 10 2008 - 19:34:44 EST


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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/