The Linux Trace Toolkit (LTT) now supports kernel-level debugging. It has been available for application-level debugging for some time, but real-time developers had to contend with basic debugging tools. This version of LTT also supports the Linux hard real-time application interface (RTAI).
LTT is an open-source project supported by Opersys Inc. of Montreal, Canada, and Lineo Inc. of Lindon, Utah. It's distributed under the GNU General Public License, making it freely available to developers. As a graphical tool, it dynamically displays system performance information (see the figure). It can be used to determine what process was accessing hardware in a particular time slice. Also, it can highlight I/O device-driver latencies or application dependence on device drivers. It's especially useful in analyzing syncrhonization problems.
Converting regular Linux applications to hard real-time applications under RTAI requires one call, rt_make_hard_real_time(). But making sure the application does what it's intended to do under these constraints is now much easier. LTT support currently works in a single-processor environment. The support hooks have not been added in the multiprocessor Linux kernel. This is a limitation with RTAI, LTT, and the multiprocessing support. LTT already works in this environment for regular applications.
A minor change to the LTT trace-file format makes it incompatible with prior versions, though. On the plus side, the binary format is smaller, which is very handy because tracing over long periods of time can generate rather large files. The binary encoding also im-proves performance.
For more information about the LTT, visit www.opersys.com/ LTT/.