Kyle Swenson | 8d8f654 | 2021-03-15 11:02:55 -0600 | [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 | <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> |