comparison between perf, ftrace, lttng and gdb...
TRANSCRIPT
![Page 1: Comparison between perf, Ftrace, LTTng and GDB tracepointsdmct.dorsal.polymtl.ca/sites/dmct.dorsal.polymtl... · 10 Comparison between perf, Ftrace, LTTng and GDB tracepoints 10 GDB](https://reader034.vdocuments.mx/reader034/viewer/2022042601/5f9aee2eff38ed50c7467399/html5/thumbnails/1.jpg)
1
Comparison between perf, Ftrace, LTTng and GDB tracepoints
June 29, 2010École Polytechnique, Montreal
Rafik FahemDepartment of Computer and Software Engineering
![Page 2: Comparison between perf, Ftrace, LTTng and GDB tracepointsdmct.dorsal.polymtl.ca/sites/dmct.dorsal.polymtl... · 10 Comparison between perf, Ftrace, LTTng and GDB tracepoints 10 GDB](https://reader034.vdocuments.mx/reader034/viewer/2022042601/5f9aee2eff38ed50c7467399/html5/thumbnails/2.jpg)
22 Comparison between perf, Ftrace, LTTng and GDB tracepoints
ContentPerf
Ftrace
LTTng
GDB tracepoints
Discussion
Questions
![Page 3: Comparison between perf, Ftrace, LTTng and GDB tracepointsdmct.dorsal.polymtl.ca/sites/dmct.dorsal.polymtl... · 10 Comparison between perf, Ftrace, LTTng and GDB tracepoints 10 GDB](https://reader034.vdocuments.mx/reader034/viewer/2022042601/5f9aee2eff38ed50c7467399/html5/thumbnails/3.jpg)
33 Comparison between perf, Ftrace, LTTng and GDB tracepoints
Perf
● Used for performance analysis● Static tracepoints:
● Makes use of the tracepoints available in the kernel(version 2.6.32 and higher)
● Dynamic tracepoints can be defined with:● Symbols and registers without debuginfo● C line numbers, function names and local variables with
debuginfo
![Page 4: Comparison between perf, Ftrace, LTTng and GDB tracepointsdmct.dorsal.polymtl.ca/sites/dmct.dorsal.polymtl... · 10 Comparison between perf, Ftrace, LTTng and GDB tracepoints 10 GDB](https://reader034.vdocuments.mx/reader034/viewer/2022042601/5f9aee2eff38ed50c7467399/html5/thumbnails/4.jpg)
44 Comparison between perf, Ftrace, LTTng and GDB tracepoints
Perf
● Dynamic tracepoints are implemented with kprobes
● Vmlinux containing the debuginfo has to be a Dwarf binary
● Traces only the events generated by a specific program
![Page 5: Comparison between perf, Ftrace, LTTng and GDB tracepointsdmct.dorsal.polymtl.ca/sites/dmct.dorsal.polymtl... · 10 Comparison between perf, Ftrace, LTTng and GDB tracepoints 10 GDB](https://reader034.vdocuments.mx/reader034/viewer/2022042601/5f9aee2eff38ed50c7467399/html5/thumbnails/5.jpg)
55 Comparison between perf, Ftrace, LTTng and GDB tracepoints
Perf
● Available data:● Number of times the tracepoint was hit● Execution time● Calling functions
● Trace is available only after execution
![Page 6: Comparison between perf, Ftrace, LTTng and GDB tracepointsdmct.dorsal.polymtl.ca/sites/dmct.dorsal.polymtl... · 10 Comparison between perf, Ftrace, LTTng and GDB tracepoints 10 GDB](https://reader034.vdocuments.mx/reader034/viewer/2022042601/5f9aee2eff38ed50c7467399/html5/thumbnails/6.jpg)
66 Comparison between perf, Ftrace, LTTng and GDB tracepoints
Ftrace
● Can be used for debugging and latency analysis
● Includes six different tracers: function calls, context switches...etc
● Uses the static tracepoints available in the kernel source
● Dynamic tracepoints unavailable
![Page 7: Comparison between perf, Ftrace, LTTng and GDB tracepointsdmct.dorsal.polymtl.ca/sites/dmct.dorsal.polymtl... · 10 Comparison between perf, Ftrace, LTTng and GDB tracepoints 10 GDB](https://reader034.vdocuments.mx/reader034/viewer/2022042601/5f9aee2eff38ed50c7467399/html5/thumbnails/7.jpg)
77 Comparison between perf, Ftrace, LTTng and GDB tracepoints
Ftrace
● Available data depends on the tracer enabled: execution time, calling functions, PIDs...
● Thousands of filters available to trace only some selected events
● Trace is recorded in debugfs● Trace can be viewed when tracing
![Page 8: Comparison between perf, Ftrace, LTTng and GDB tracepointsdmct.dorsal.polymtl.ca/sites/dmct.dorsal.polymtl... · 10 Comparison between perf, Ftrace, LTTng and GDB tracepoints 10 GDB](https://reader034.vdocuments.mx/reader034/viewer/2022042601/5f9aee2eff38ed50c7467399/html5/thumbnails/8.jpg)
88 Comparison between perf, Ftrace, LTTng and GDB tracepoints
LTTng
● Optimized for static tracing● Uses the static tracepoints available in the
kernel● Dynamic tracepoints implemented using
kprobes● Several probes can be connected to the same
tracepoint● Live monitoring under development
![Page 9: Comparison between perf, Ftrace, LTTng and GDB tracepointsdmct.dorsal.polymtl.ca/sites/dmct.dorsal.polymtl... · 10 Comparison between perf, Ftrace, LTTng and GDB tracepoints 10 GDB](https://reader034.vdocuments.mx/reader034/viewer/2022042601/5f9aee2eff38ed50c7467399/html5/thumbnails/9.jpg)
99 Comparison between perf, Ftrace, LTTng and GDB tracepoints
GDB tracepoints
● Can only be used in user space● Only dynamic tracepoints are supported in the
current version● UST tracepoints can be used● Tracepoints inserted using traps● Fast tracepoints:
● Faster but restricted in where they may be installed● Inserted with a jump
![Page 10: Comparison between perf, Ftrace, LTTng and GDB tracepointsdmct.dorsal.polymtl.ca/sites/dmct.dorsal.polymtl... · 10 Comparison between perf, Ftrace, LTTng and GDB tracepoints 10 GDB](https://reader034.vdocuments.mx/reader034/viewer/2022042601/5f9aee2eff38ed50c7467399/html5/thumbnails/10.jpg)
1010 Comparison between perf, Ftrace, LTTng and GDB tracepoints
GDB tracepoints
● Data collected can include registers, local variables and global data.
● Tracepoints can be defined with line numbers, function names and addresses
● A trace snapshot is collected every time a tracepoint is hit
● These snapshots are stored in buffers and can be examined later
![Page 11: Comparison between perf, Ftrace, LTTng and GDB tracepointsdmct.dorsal.polymtl.ca/sites/dmct.dorsal.polymtl... · 10 Comparison between perf, Ftrace, LTTng and GDB tracepoints 10 GDB](https://reader034.vdocuments.mx/reader034/viewer/2022042601/5f9aee2eff38ed50c7467399/html5/thumbnails/11.jpg)
1111 Comparison between perf, Ftrace, LTTng and GDB tracepoints
Discussion
● Perf:● Tracing a single program● Statistics: execution time, calling functions, number
of times the tracepoint was hit● Hardware performance counters
● Ftrace:● Filters● Trace in debugfs
![Page 12: Comparison between perf, Ftrace, LTTng and GDB tracepointsdmct.dorsal.polymtl.ca/sites/dmct.dorsal.polymtl... · 10 Comparison between perf, Ftrace, LTTng and GDB tracepoints 10 GDB](https://reader034.vdocuments.mx/reader034/viewer/2022042601/5f9aee2eff38ed50c7467399/html5/thumbnails/12.jpg)
1212 Comparison between perf, Ftrace, LTTng and GDB tracepoints
Discussion
● LTTng:● Optimized static tracing● Userspace tracing● Trace streaming
● GDB tracepoints:● Fast tracepoints using jumps
● Debuginfo is needed to access variables(SystemTap)
![Page 13: Comparison between perf, Ftrace, LTTng and GDB tracepointsdmct.dorsal.polymtl.ca/sites/dmct.dorsal.polymtl... · 10 Comparison between perf, Ftrace, LTTng and GDB tracepoints 10 GDB](https://reader034.vdocuments.mx/reader034/viewer/2022042601/5f9aee2eff38ed50c7467399/html5/thumbnails/13.jpg)
1313 Comparison between perf, Ftrace, LTTng and GDB tracepoints
Questions?