Merge remote-tracking branch 'torvalds/master' into perf/core
[linux-2.6-microblaze.git] / Documentation / core-api / tracepoint.rst
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: