A Light-Weight Event Tracing Toolkit

about - download - documentation - contact


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:

Feather-Trace was first presented in our paper Feather-Trace: A Light-Weight Event Tracing Toolkit at the Workshop on Operating Systems Platforms for Embedded Real-Time applications (OSPERT) 2007.



The main source code release contains the operating system agnostic part of Feather-Trace and is made available under the terms of a MIT-style license. It includes some glue code for user space tracing, simple examples that demonstrate how to use the Feather-Trace macros, and a proxy library (for use with LD_PRELOAD) that traces phthread_mutex_lock() and phthread_mutex_unlock() calls.

Start here if you want to embed Feather-Trace into an existing (operating) system.

The code is now available on Github: https://github.com/brandenburg/feather-trace.


As described in the paper, we modified the {spin,rw}_trylock/_lock/_unlock macros to obtain two timestamps for each lock request: (1) immediately after the lock was acquired and (2) just before the lock is released. Further, we developed a custom character device driver to export the trace data to userspace. For archival reasons, the complete modification is available as a patch against Linux 2.6.20.

Complete OSPERT'07 modification: ospert_complete.patch (against Linux 2.6.20)

Note: The device driver as given in the patch is not safe for concurrent access from several user space clients because we did not want to introduce additional locks while tracing locking patterns. To avoid problems, either use only one user space client at a time or add a mutex and reference counting to the driver.

To comply with the Linux kernel license, the Linux patch is made available under the terms of the GNU General Public License (GPL).


A brief user guide can be found in the file HOWTO.markdown.


Please email Björn Brandenburg if you have any questions.


The Feather-Trace logo was designed by Jasper McChesney of Break for Sense Design.