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