tracepoint.tmpl 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  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. <author>
  18. <firstname>William</firstname>
  19. <surname>Cohen</surname>
  20. <affiliation>
  21. <address>
  22. <email>wcohen@redhat.com</email>
  23. </address>
  24. </affiliation>
  25. </author>
  26. </authorgroup>
  27. <legalnotice>
  28. <para>
  29. This documentation is free software; you can redistribute
  30. it and/or modify it under the terms of the GNU General Public
  31. License as published by the Free Software Foundation; either
  32. version 2 of the License, or (at your option) any later
  33. version.
  34. </para>
  35. <para>
  36. This program is distributed in the hope that it will be
  37. useful, but WITHOUT ANY WARRANTY; without even the implied
  38. warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  39. See the GNU General Public License for more details.
  40. </para>
  41. <para>
  42. You should have received a copy of the GNU General Public
  43. License along with this program; if not, write to the Free
  44. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  45. MA 02111-1307 USA
  46. </para>
  47. <para>
  48. For more details see the file COPYING in the source
  49. distribution of Linux.
  50. </para>
  51. </legalnotice>
  52. </bookinfo>
  53. <toc></toc>
  54. <chapter id="intro">
  55. <title>Introduction</title>
  56. <para>
  57. Tracepoints are static probe points that are located in strategic points
  58. throughout the kernel. 'Probes' register/unregister with tracepoints
  59. via a callback mechanism. The 'probes' are strictly typed functions that
  60. are passed a unique set of parameters defined by each tracepoint.
  61. </para>
  62. <para>
  63. From this simple callback mechanism, 'probes' can be used to profile, debug,
  64. and understand kernel behavior. There are a number of tools that provide a
  65. framework for using 'probes'. These tools include Systemtap, ftrace, and
  66. LTTng.
  67. </para>
  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. <para>
  75. The API presented has functions of the form:
  76. <function>trace_tracepointname(function parameters)</function>. These are the
  77. tracepoints callbacks that are found throughout the code. Registering and
  78. unregistering probes with these callback sites is covered in the
  79. <filename>Documentation/trace/*</filename> directory.
  80. </para>
  81. </chapter>
  82. <chapter id="irq">
  83. <title>IRQ</title>
  84. !Iinclude/trace/events/irq.h
  85. </chapter>
  86. <chapter id="signal">
  87. <title>SIGNAL</title>
  88. !Iinclude/trace/events/signal.h
  89. </chapter>
  90. <chapter id="block">
  91. <title>Block IO</title>
  92. !Iinclude/trace/events/block.h
  93. </chapter>
  94. <chapter id="workqueue">
  95. <title>Workqueue</title>
  96. !Iinclude/trace/events/workqueue.h
  97. </chapter>
  98. </book>