| =============================== | 
 | 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: |