1*09209eecSAndrew Geissler.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
2*09209eecSAndrew Geissler
3*09209eecSAndrew Geissler*************************************************************
4*09209eecSAndrew GeisslerOverall Architecture of the Linux Tracing and Profiling Tools
5*09209eecSAndrew Geissler*************************************************************
6*09209eecSAndrew Geissler
7*09209eecSAndrew GeisslerArchitecture of the Tracing and Profiling Tools
8*09209eecSAndrew Geissler===============================================
9*09209eecSAndrew Geissler
10*09209eecSAndrew GeisslerIt may seem surprising to see a section covering an 'overall
11*09209eecSAndrew Geisslerarchitecture' for what seems to be a random collection of tracing tools
12*09209eecSAndrew Geisslerthat together make up the Linux tracing and profiling space. The fact
13*09209eecSAndrew Geissleris, however, that in recent years this seemingly disparate set of tools
14*09209eecSAndrew Geisslerhas started to converge on a 'core' set of underlying mechanisms:
15*09209eecSAndrew Geissler
16*09209eecSAndrew Geissler-  static tracepoints
17*09209eecSAndrew Geissler-  dynamic tracepoints
18*09209eecSAndrew Geissler
19*09209eecSAndrew Geissler   -  kprobes
20*09209eecSAndrew Geissler   -  uprobes
21*09209eecSAndrew Geissler
22*09209eecSAndrew Geissler-  the perf_events subsystem
23*09209eecSAndrew Geissler-  debugfs
24*09209eecSAndrew Geissler
25*09209eecSAndrew Geissler.. admonition:: Tying it Together
26*09209eecSAndrew Geissler
27*09209eecSAndrew Geissler   Rather than enumerating here how each tool makes use of these common
28*09209eecSAndrew Geissler   mechanisms, textboxes like this will make note of the specific usages
29*09209eecSAndrew Geissler   in each tool as they come up in the course of the text.
30