Permalink
Cannot retrieve contributors at this time
58 lines (43 sloc)
1.99 KB
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
bcc/tools/runqslower_example.txt
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Demonstrations of runqslower, the Linux eBPF/bcc version. | |
runqslower shows high latency scheduling times between tasks being | |
ready to run and them running on CPU after that. For example: | |
# runqslower | |
Note: Showing TID (thread id) in the report column. The smallest | |
execution unit becomes a TID when using the --pid flag as | |
in that case the tool reports not only the parent pid but | |
its children threads as well. | |
Tracing run queue latency higher than 10000 us. | |
TIME COMM TID LAT(us) | |
04:16:32 cc1 12924 12739 | |
04:16:32 sh 13640 12118 | |
04:16:32 make 13639 12730 | |
04:16:32 bash 13655 12047 | |
04:16:32 bash 13657 12744 | |
04:16:32 bash 13656 12880 | |
04:16:32 sh 13660 10846 | |
04:16:32 gcc 13663 12681 | |
04:16:32 make 13668 10814 | |
04:16:32 make 13670 12988 | |
04:16:32 gcc 13677 11770 | |
04:16:32 gcc 13678 23519 | |
04:16:32 as 12999 20541 | |
[...] | |
This shows various processes waiting for available CPU during a Linux kernel | |
build. By default the output contains delays for more than 10ms. | |
These delays can be analyzed in depth with "perf sched" tool, see: | |
* http://www.brendangregg.com/blog/2017-03-16/perf-sched.html | |
USAGE message: | |
# ./runqslower -h | |
usage: runqslower.py [-h] [-p PID | -t TID] [min_us] | |
Trace high run queue latency | |
positional arguments: | |
min_us minimum run queue latecy to trace, in us (default 10000) | |
optional arguments: | |
-h, --help show this help message and exit | |
-p PID, --pid PID trace this PID | |
-t TID, --tid TID trace this TID only | |
examples: | |
./runqslower # trace run queue latency higher than 10000 us (default) | |
./runqslower 1000 # trace run queue latency higher than 1000 us | |
./runqslower -p 123 # trace pid 123 | |
./runqslower -t 123 # trace tid (thread) 123 |