Merge branch 'timers-for-linus-cleanups' of git://git.kernel.org/pub/scm/linux/kernel...
[pandora-kernel.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    <author>
20     <firstname>William</firstname>
21     <surname>Cohen</surname>
22     <affiliation>
23      <address>
24       <email>wcohen@redhat.com</email>
25      </address>
26     </affiliation>
27    </author>
28   </authorgroup>
29
30   <legalnotice>
31    <para>
32      This documentation is free software; you can redistribute
33      it and/or modify it under the terms of the GNU General Public
34      License as published by the Free Software Foundation; either
35      version 2 of the License, or (at your option) any later
36      version.
37    </para>
38
39    <para>
40      This program is distributed in the hope that it will be
41      useful, but WITHOUT ANY WARRANTY; without even the implied
42      warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
43      See the GNU General Public License for more details.
44    </para>
45
46    <para>
47      You should have received a copy of the GNU General Public
48      License along with this program; if not, write to the Free
49      Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
50      MA 02111-1307 USA
51    </para>
52
53    <para>
54      For more details see the file COPYING in the source
55      distribution of Linux.
56    </para>
57   </legalnotice>
58  </bookinfo>
59
60  <toc></toc>
61   <chapter id="intro">
62    <title>Introduction</title>
63    <para>
64      Tracepoints are static probe points that are located in strategic points
65      throughout the kernel. 'Probes' register/unregister with tracepoints
66      via a callback mechanism. The 'probes' are strictly typed functions that
67      are passed a unique set of parameters defined by each tracepoint.
68    </para>
69
70    <para>
71      From this simple callback mechanism, 'probes' can be used to profile, debug,
72      and understand kernel behavior. There are a number of tools that provide a
73      framework for using 'probes'. These tools include Systemtap, ftrace, and
74      LTTng.
75    </para>
76
77    <para>
78      Tracepoints are defined in a number of header files via various macros. Thus,
79      the purpose of this document is to provide a clear accounting of the available
80      tracepoints. The intention is to understand not only what tracepoints are
81      available but also to understand where future tracepoints might be added.
82    </para>
83
84    <para>
85      The API presented has functions of the form:
86      <function>trace_tracepointname(function parameters)</function>. These are the
87      tracepoints callbacks that are found throughout the code. Registering and
88      unregistering probes with these callback sites is covered in the
89      <filename>Documentation/trace/*</filename> directory.
90    </para>
91   </chapter>
92
93   <chapter id="irq">
94    <title>IRQ</title>
95 !Iinclude/trace/events/irq.h
96   </chapter>
97
98   <chapter id="signal">
99    <title>SIGNAL</title>
100 !Iinclude/trace/events/signal.h
101   </chapter>
102
103   <chapter id="block">
104    <title>Block IO</title>
105 !Iinclude/trace/events/block.h
106   </chapter>
107 </book>