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