Feather-Trace

Feather-Trace is a very light-weight static event tracing toolkit for the Intel x86 platform (both 32- and 64-bit binaries are supported). It has the following notable features: Very low overhead: only a single instruction is executed for disabled events. This instruction is an unconditional jump; branch prediction is thus not affected. Enabled events incur only the cost of one unconditional jump and a function call. Wait-free, multiprocessor-safe FIFO buffers: low-overhead, non-blocking trace data collection. Highly portable: requires no operating system services such as synchronization primitives or modification of interrupt handlers. Execution context agnostic: trace everywhere, even inside interrupt handlers and preemptable code sections. Can be used in user space, too.