Subject: | LTT patch for 2.6.16 |
Date: | Mon, 03 Jul 2006 21:59:59 +0200 |
If someone is interested, here is modified version of the 2.6.9/10 ltt
patch for the newer 2.6.16 kernel. This kernel now supports (simplified)
relayfs implementation, which has been used by this patch. Patch is
still far from being complete and bug free, but looks usable to me on my
i386 Nehemiah target, together with a slightly modified ltt-0.9.6-pre5
userspace tracing tools.
Patch URL: http://84.255.254.67/ltt-linux-2.6.16.patch
Tools URL: http://84.255.254.67/ltt-0.9.6-pre5.tar.gz
Current status of functionality:
0. Current patch only supports i386 architecture specifics, since I
wanted to limit the area of needed modifications and I would like to
explore if it is sensible to remove all those spreaded trace points
around the kernel by using different mechanism. Anyway, at current state
other architectures should not be to difficult to add, by adjusting
arcitecture specifics of the 2.6.9 ltt kernel patch, for example.
1. Locking and lockless options of the tracedaemon tool result in the
same operation within the kernel, except for the different startup
requirements mostly enforced by original tracedaemon. Basicaly subbuffer
switches (together with writing start buffer and end buffer events) and
subbuffer space reservation for each event are being hopefully protected
with a spinlock.
2. Multiple starting and stopping of collecting events has been
protected and synchronised via an extra semaphore.
3. Timestamping works via gettimaofday (defined as generic) and via TSC
counter on i386 (defined as arch specific). This functionality was
collected in separate files, that can be patched and used separately
from ltt.
4. Works in either tracer (tracedaemon running for the time duration
specified - no subbuffer overwrite) or flight recorder (tracedaemon run
just to collect current buffer content of circular subbuffers -
overwrite relayfs operation) tracing mode.
5. Only one tracer started at once.
6. SMP - per cpu files need to be checked and cleaned.
7. Both tracer and flight recorder modes collect all events by default.
8. Custom events can be seen in both tracing modes.
If something has not been done correctly, please let me know.
Finally, many thanks to original authors of LTT as well as to all Linux
community for the oportunity to use, modify and learn from your source
code.
regards, Samo