| =============================== |
| The Linux Kernel Tracepoint API |
| =============================== |
| |
| :Author: Jason Baron |
| :Author: William Cohen |
| |
| Introduction |
| ============ |
| |
| Tracepoints are static probe points that are located in strategic points |
| throughout the kernel. 'Probes' register/unregister with tracepoints via |
| a callback mechanism. The 'probes' are strictly typed functions that are |
| passed a unique set of parameters defined by each tracepoint. |
| |
| From this simple callback mechanism, 'probes' can be used to profile, |
| debug, and understand kernel behavior. There are a number of tools that |
| provide a framework for using 'probes'. These tools include Systemtap, |
| ftrace, and LTTng. |
| |
| Tracepoints are defined in a number of header files via various macros. |
| Thus, the purpose of this document is to provide a clear accounting of |
| the available tracepoints. The intention is to understand not only what |
| tracepoints are available but also to understand where future |
| tracepoints might be added. |
| |
| The API presented has functions of the form: |
| ``trace_tracepointname(function parameters)``. These are the tracepoints |
| callbacks that are found throughout the code. Registering and |
| unregistering probes with these callback sites is covered in the |
| ``Documentation/trace/*`` directory. |
| |
| IRQ |
| === |
| |
| .. kernel-doc:: include/trace/events/irq.h |
| :internal: |
| |
| SIGNAL |
| ====== |
| |
| .. kernel-doc:: include/trace/events/signal.h |
| :internal: |
| |
| Block IO |
| ======== |
| |
| .. kernel-doc:: include/trace/events/block.h |
| :internal: |
| |
| Workqueue |
| ========= |
| |
| .. kernel-doc:: include/trace/events/workqueue.h |
| :internal: |