tracepoint.tmpl 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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. <book id="Tracepoints">
  5. <bookinfo>
  6. <title>The Linux Kernel Tracepoint API</title>
  7. <authorgroup>
  8. <author>
  9. <firstname>Jason</firstname>
  10. <surname>Baron</surname>
  11. <affiliation>
  12. <address>
  13. <email>jbaron@redhat.com</email>
  14. </address>
  15. </affiliation>
  16. </author>
  17. </authorgroup>
  18. <legalnotice>
  19. <para>
  20. This documentation is free software; you can redistribute
  21. it and/or modify it under the terms of the GNU General Public
  22. License as published by the Free Software Foundation; either
  23. version 2 of the License, or (at your option) any later
  24. version.
  25. </para>
  26. <para>
  27. This program is distributed in the hope that it will be
  28. useful, but WITHOUT ANY WARRANTY; without even the implied
  29. warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  30. See the GNU General Public License for more details.
  31. </para>
  32. <para>
  33. You should have received a copy of the GNU General Public
  34. License along with this program; if not, write to the Free
  35. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  36. MA 02111-1307 USA
  37. </para>
  38. <para>
  39. For more details see the file COPYING in the source
  40. distribution of Linux.
  41. </para>
  42. </legalnotice>
  43. </bookinfo>
  44. <toc></toc>
  45. <chapter id="intro">
  46. <title>Introduction</title>
  47. <para>
  48. Tracepoints are static probe points that are located in strategic points
  49. throughout the kernel. 'Probes' register/unregister with tracepoints
  50. via a callback mechanism. The 'probes' are strictly typed functions that
  51. are passed a unique set of parameters defined by each tracepoint.
  52. </para>
  53. <para>
  54. From this simple callback mechanism, 'probes' can be used to profile, debug,
  55. and understand kernel behavior. There are a number of tools that provide a
  56. framework for using 'probes'. These tools include Systemtap, ftrace, and
  57. LTTng.
  58. </para>
  59. <para>
  60. Tracepoints are defined in a number of header files via various macros. Thus,
  61. the purpose of this document is to provide a clear accounting of the available
  62. tracepoints. The intention is to understand not only what tracepoints are
  63. available but also to understand where future tracepoints might be added.
  64. </para>
  65. <para>
  66. The API presented has functions of the form:
  67. <function>trace_tracepointname(function parameters)</function>. These are the
  68. tracepoints callbacks that are found throughout the code. Registering and
  69. unregistering probes with these callback sites is covered in the
  70. <filename>Documentation/trace/*</filename> directory.
  71. </para>
  72. </chapter>
  73. <chapter id="irq">
  74. <title>IRQ</title>
  75. !Iinclude/trace/events/irq.h
  76. </chapter>
  77. </book>