| 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> | 
|  | 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 |  | 
| Jason Baron | 9ee1983 | 2009-04-30 13:29:47 -0400 | [diff] [blame] | 84 | <chapter id="irq"> | 
|  | 85 | <title>IRQ</title> | 
|  | 86 | !Iinclude/trace/events/irq.h | 
|  | 87 | </chapter> | 
|  | 88 |  | 
| Jason Baron | a76f8c6 | 2009-04-30 13:29:42 -0400 | [diff] [blame] | 89 | </book> |