1Demonstrations of runqslower, the Linux eBPF/bcc version. 2 3 4runqslower shows high latency scheduling times between tasks being 5ready to run and them running on CPU after that. For example: 6 7# runqslower 8Tracing run queue latency higher than 10000 us 9TIME COMM PID LAT(us) 1004:16:32 cc1 12924 12739 1104:16:32 sh 13640 12118 1204:16:32 make 13639 12730 1304:16:32 bash 13655 12047 1404:16:32 bash 13657 12744 1504:16:32 bash 13656 12880 1604:16:32 sh 13660 10846 1704:16:32 gcc 13663 12681 1804:16:32 make 13668 10814 1904:16:32 make 13670 12988 2004:16:32 gcc 13677 11770 2104:16:32 gcc 13678 23519 2204:16:32 as 12999 20541 23[...] 24 25This shows various processes waiting for available CPU during a Linux kernel 26build. By default the output contains delays for more than 10ms. 27 28These delays can be analyzed in depth with "perf sched" tool, see: 29 30* http://www.brendangregg.com/blog/2017-03-16/perf-sched.html 31 32USAGE message: 33 34# ./runqslower -h 35usage: runqslower.py [-h] [-p PID] [min_us] 36 37Trace high run queue latency 38 39positional arguments: 40 min_us minimum run queue latecy to trace, in ms (default 10000) 41 42optional arguments: 43 -h, --help show this help message and exit 44 -p PID, --pid PID trace this PID only 45 46examples: 47 ./runqslower # trace run queue latency higher than 10000 us (default) 48 ./runqslower 1000 # trace run queue latency higher than 1000 us 49 ./runqslower -p 123 # trace pid 123 only 50