0001 ===============================
0002 The Linux Kernel Tracepoint API
0003 ===============================
0004
0005 :Author: Jason Baron
0006 :Author: William Cohen
0007
0008 Introduction
0009 ============
0010
0011 Tracepoints are static probe points that are located in strategic points
0012 throughout the kernel. 'Probes' register/unregister with tracepoints via
0013 a callback mechanism. The 'probes' are strictly typed functions that are
0014 passed a unique set of parameters defined by each tracepoint.
0015
0016 From this simple callback mechanism, 'probes' can be used to profile,
0017 debug, and understand kernel behavior. There are a number of tools that
0018 provide a framework for using 'probes'. These tools include Systemtap,
0019 ftrace, and LTTng.
0020
0021 Tracepoints are defined in a number of header files via various macros.
0022 Thus, the purpose of this document is to provide a clear accounting of
0023 the available tracepoints. The intention is to understand not only what
0024 tracepoints are available but also to understand where future
0025 tracepoints might be added.
0026
0027 The API presented has functions of the form:
0028 ``trace_tracepointname(function parameters)``. These are the tracepoints
0029 callbacks that are found throughout the code. Registering and
0030 unregistering probes with these callback sites is covered in the
0031 ``Documentation/trace/*`` directory.
0032
0033 IRQ
0034 ===
0035
0036 .. kernel-doc:: include/trace/events/irq.h
0037 :internal:
0038
0039 SIGNAL
0040 ======
0041
0042 .. kernel-doc:: include/trace/events/signal.h
0043 :internal:
0044
0045 Block IO
0046 ========
0047
0048 .. kernel-doc:: include/trace/events/block.h
0049 :internal:
0050
0051 Workqueue
0052 =========
0053
0054 .. kernel-doc:: include/trace/events/workqueue.h
0055 :internal: