| Jason Baron | a76f8c6 | 2009-04-30 13:29:42 -0400 | [diff] [blame] | 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> | 
| William Cohen | 881245d | 2010-03-09 09:26:04 +0100 | [diff] [blame] | 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> | 
| Jason Baron | a76f8c6 | 2009-04-30 13:29:42 -0400 | [diff] [blame] | 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 |  | 
| Jason Baron | 9ee1983 | 2009-04-30 13:29:47 -0400 | [diff] [blame] | 93 |   <chapter id="irq"> | 
 | 94 |    <title>IRQ</title> | 
 | 95 | !Iinclude/trace/events/irq.h | 
 | 96 |   </chapter> | 
 | 97 |  | 
| Masami Hiramatsu | d1eb650 | 2009-11-24 16:56:45 -0500 | [diff] [blame] | 98 |   <chapter id="signal"> | 
 | 99 |    <title>SIGNAL</title> | 
 | 100 | !Iinclude/trace/events/signal.h | 
 | 101 |   </chapter> | 
 | 102 |  | 
| William Cohen | 881245d | 2010-03-09 09:26:04 +0100 | [diff] [blame] | 103 |   <chapter id="block"> | 
 | 104 |    <title>Block IO</title> | 
 | 105 | !Iinclude/trace/events/block.h | 
 | 106 |   </chapter> | 
| Jason Baron | 7c38875 | 2010-08-26 10:35:43 -0400 | [diff] [blame] | 107 |  | 
 | 108 |   <chapter id="workqueue"> | 
 | 109 |    <title>Workqueue</title> | 
 | 110 | !Iinclude/trace/events/workqueue.h | 
 | 111 |   </chapter> | 
| Jason Baron | a76f8c6 | 2009-04-30 13:29:42 -0400 | [diff] [blame] | 112 | </book> |