Jonathan Corbet | d6ba7a9 | 2016-11-18 17:21:32 -0700 | [diff] [blame] | 1 | =============================== |
| 2 | The Linux Kernel Tracepoint API |
| 3 | =============================== |
| 4 | |
| 5 | :Author: Jason Baron |
| 6 | :Author: William Cohen |
| 7 | |
| 8 | Introduction |
| 9 | ============ |
| 10 | |
| 11 | Tracepoints are static probe points that are located in strategic points |
| 12 | throughout the kernel. 'Probes' register/unregister with tracepoints via |
| 13 | a callback mechanism. The 'probes' are strictly typed functions that are |
| 14 | passed a unique set of parameters defined by each tracepoint. |
| 15 | |
| 16 | From this simple callback mechanism, 'probes' can be used to profile, |
| 17 | debug, and understand kernel behavior. There are a number of tools that |
| 18 | provide a framework for using 'probes'. These tools include Systemtap, |
| 19 | ftrace, and LTTng. |
| 20 | |
| 21 | Tracepoints are defined in a number of header files via various macros. |
| 22 | Thus, the purpose of this document is to provide a clear accounting of |
| 23 | the available tracepoints. The intention is to understand not only what |
| 24 | tracepoints are available but also to understand where future |
| 25 | tracepoints might be added. |
| 26 | |
| 27 | The API presented has functions of the form: |
| 28 | ``trace_tracepointname(function parameters)``. These are the tracepoints |
| 29 | callbacks that are found throughout the code. Registering and |
| 30 | unregistering probes with these callback sites is covered in the |
| 31 | ``Documentation/trace/*`` directory. |
| 32 | |
| 33 | IRQ |
| 34 | === |
| 35 | |
| 36 | .. kernel-doc:: include/trace/events/irq.h |
| 37 | :internal: |
| 38 | |
| 39 | SIGNAL |
| 40 | ====== |
| 41 | |
| 42 | .. kernel-doc:: include/trace/events/signal.h |
| 43 | :internal: |
| 44 | |
| 45 | Block IO |
| 46 | ======== |
| 47 | |
| 48 | .. kernel-doc:: include/trace/events/block.h |
| 49 | :internal: |
| 50 | |
| 51 | Workqueue |
| 52 | ========= |
| 53 | |
| 54 | .. kernel-doc:: include/trace/events/workqueue.h |
| 55 | :internal: |