Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6.git] / Documentation / DocBook / tracepoint.tmpl
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
3         "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []>
4
5 <book id="Tracepoints">
6  <bookinfo>
7   <title>The Linux Kernel Tracepoint API</title>
8
9   <authorgroup>
10    <author>
11     <firstname>Jason</firstname>
12     <surname>Baron</surname>
13     <affiliation>
14      <address>
15       <email>jbaron@redhat.com</email>
16      </address>
17     </affiliation>
18    </author>
19   </authorgroup>
20
21   <legalnotice>
22    <para>
23      This documentation is free software; you can redistribute
24      it and/or modify it under the terms of the GNU General Public
25      License as published by the Free Software Foundation; either
26      version 2 of the License, or (at your option) any later
27      version.
28    </para>
29
30    <para>
31      This program is distributed in the hope that it will be
32      useful, but WITHOUT ANY WARRANTY; without even the implied
33      warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
34      See the GNU General Public License for more details.
35    </para>
36
37    <para>
38      You should have received a copy of the GNU General Public
39      License along with this program; if not, write to the Free
40      Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
41      MA 02111-1307 USA
42    </para>
43
44    <para>
45      For more details see the file COPYING in the source
46      distribution of Linux.
47    </para>
48   </legalnotice>
49  </bookinfo>
50
51  <toc></toc>
52   <chapter id="intro">
53    <title>Introduction</title>
54    <para>
55      Tracepoints are static probe points that are located in strategic points
56      throughout the kernel. 'Probes' register/unregister with tracepoints
57      via a callback mechanism. The 'probes' are strictly typed functions that
58      are passed a unique set of parameters defined by each tracepoint.
59    </para>
60
61    <para>
62      From this simple callback mechanism, 'probes' can be used to profile, debug,
63      and understand kernel behavior. There are a number of tools that provide a
64      framework for using 'probes'. These tools include Systemtap, ftrace, and
65      LTTng.
66    </para>
67
68    <para>
69      Tracepoints are defined in a number of header files via various macros. Thus,
70      the purpose of this document is to provide a clear accounting of the available
71      tracepoints. The intention is to understand not only what tracepoints are
72      available but also to understand where future tracepoints might be added.
73    </para>
74
75    <para>
76      The API presented has functions of the form:
77      <function>trace_tracepointname(function parameters)</function>. These are the
78      tracepoints callbacks that are found throughout the code. Registering and
79      unregistering probes with these callback sites is covered in the
80      <filename>Documentation/trace/*</filename> directory.
81    </para>
82   </chapter>
83
84   <chapter id="irq">
85    <title>IRQ</title>
86 !Iinclude/trace/events/irq.h
87   </chapter>
88
89   <chapter id="signal">
90    <title>SIGNAL</title>
91 !Iinclude/trace/events/signal.h
92   </chapter>
93
94 </book>