Tracing Tools

Tracing is routinely used to help understanding the behavior and performance of various aspects of the Linux kernel and associated drivers. Many of the 80K+ printk statements in the Linux kernel serve this purpose, although printk is relatively low performance and unreliable. The small default printk buffer size coupled with the low performance brings lost messages as soon as the volume becomes significant.

For this reason, a number of drivers include their own tracing macros and infrastructure. A quick search looking for TRACE and related keywords in the Linux kernel source reveals some form of tracing in at least the following files: