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