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 108 <chapter id="workqueue"> 109 <title>Workqueue</title> 110!Iinclude/trace/events/workqueue.h 111 </chapter> 112</book> 113