You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
112 lines
3.3 KiB
112 lines
3.3 KiB
<?xml version="1.0" encoding="UTF-8"?> |
|
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" |
|
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []> |
|
|
|
<book id="Tracepoints"> |
|
<bookinfo> |
|
<title>The Linux Kernel Tracepoint API</title> |
|
|
|
<authorgroup> |
|
<author> |
|
<firstname>Jason</firstname> |
|
<surname>Baron</surname> |
|
<affiliation> |
|
<address> |
|
<email>jbaron@redhat.com</email> |
|
</address> |
|
</affiliation> |
|
</author> |
|
<author> |
|
<firstname>William</firstname> |
|
<surname>Cohen</surname> |
|
<affiliation> |
|
<address> |
|
<email>wcohen@redhat.com</email> |
|
</address> |
|
</affiliation> |
|
</author> |
|
</authorgroup> |
|
|
|
<legalnotice> |
|
<para> |
|
This documentation is free software; you can redistribute |
|
it and/or modify it under the terms of the GNU General Public |
|
License as published by the Free Software Foundation; either |
|
version 2 of the License, or (at your option) any later |
|
version. |
|
</para> |
|
|
|
<para> |
|
This program is distributed in the hope that it will be |
|
useful, but WITHOUT ANY WARRANTY; without even the implied |
|
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
|
See the GNU General Public License for more details. |
|
</para> |
|
|
|
<para> |
|
You should have received a copy of the GNU General Public |
|
License along with this program; if not, write to the Free |
|
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, |
|
MA 02111-1307 USA |
|
</para> |
|
|
|
<para> |
|
For more details see the file COPYING in the source |
|
distribution of Linux. |
|
</para> |
|
</legalnotice> |
|
</bookinfo> |
|
|
|
<toc></toc> |
|
<chapter id="intro"> |
|
<title>Introduction</title> |
|
<para> |
|
Tracepoints are static probe points that are located in strategic points |
|
throughout the kernel. 'Probes' register/unregister with tracepoints |
|
via a callback mechanism. The 'probes' are strictly typed functions that |
|
are passed a unique set of parameters defined by each tracepoint. |
|
</para> |
|
|
|
<para> |
|
From this simple callback mechanism, 'probes' can be used to profile, debug, |
|
and understand kernel behavior. There are a number of tools that provide a |
|
framework for using 'probes'. These tools include Systemtap, ftrace, and |
|
LTTng. |
|
</para> |
|
|
|
<para> |
|
Tracepoints are defined in a number of header files via various macros. Thus, |
|
the purpose of this document is to provide a clear accounting of the available |
|
tracepoints. The intention is to understand not only what tracepoints are |
|
available but also to understand where future tracepoints might be added. |
|
</para> |
|
|
|
<para> |
|
The API presented has functions of the form: |
|
<function>trace_tracepointname(function parameters)</function>. These are the |
|
tracepoints callbacks that are found throughout the code. Registering and |
|
unregistering probes with these callback sites is covered in the |
|
<filename>Documentation/trace/*</filename> directory. |
|
</para> |
|
</chapter> |
|
|
|
<chapter id="irq"> |
|
<title>IRQ</title> |
|
!Iinclude/trace/events/irq.h |
|
</chapter> |
|
|
|
<chapter id="signal"> |
|
<title>SIGNAL</title> |
|
!Iinclude/trace/events/signal.h |
|
</chapter> |
|
|
|
<chapter id="block"> |
|
<title>Block IO</title> |
|
!Iinclude/trace/events/block.h |
|
</chapter> |
|
|
|
<chapter id="workqueue"> |
|
<title>Workqueue</title> |
|
!Iinclude/trace/events/workqueue.h |
|
</chapter> |
|
</book>
|
|
|