tracepoint.rst 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. ===============================
  2. The Linux Kernel Tracepoint API
  3. ===============================
  4. :Author: Jason Baron
  5. :Author: William Cohen
  6. Introduction
  7. ============
  8. Tracepoints are static probe points that are located in strategic points
  9. throughout the kernel. 'Probes' register/unregister with tracepoints via
  10. a callback mechanism. The 'probes' are strictly typed functions that are
  11. passed a unique set of parameters defined by each tracepoint.
  12. From this simple callback mechanism, 'probes' can be used to profile,
  13. debug, and understand kernel behavior. There are a number of tools that
  14. provide a framework for using 'probes'. These tools include Systemtap,
  15. ftrace, and LTTng.
  16. Tracepoints are defined in a number of header files via various macros.
  17. Thus, the purpose of this document is to provide a clear accounting of
  18. the available tracepoints. The intention is to understand not only what
  19. tracepoints are available but also to understand where future
  20. tracepoints might be added.
  21. The API presented has functions of the form:
  22. ``trace_tracepointname(function parameters)``. These are the tracepoints
  23. callbacks that are found throughout the code. Registering and
  24. unregistering probes with these callback sites is covered in the
  25. ``Documentation/trace/*`` directory.
  26. IRQ
  27. ===
  28. .. kernel-doc:: include/trace/events/irq.h
  29. :internal:
  30. SIGNAL
  31. ======
  32. .. kernel-doc:: include/trace/events/signal.h
  33. :internal:
  34. Block IO
  35. ========
  36. .. kernel-doc:: include/trace/events/block.h
  37. :internal:
  38. Workqueue
  39. =========
  40. .. kernel-doc:: include/trace/events/workqueue.h
  41. :internal: