xref: /aosp_15_r20/external/bcc/tools/runqlen_example.txt (revision 387f9dfdfa2baef462e92476d413c7bc2470293e)
1*387f9dfdSAndroid Build Coastguard WorkerDemonstrations of runqlen, the Linux eBPF/bcc version.
2*387f9dfdSAndroid Build Coastguard Worker
3*387f9dfdSAndroid Build Coastguard Worker
4*387f9dfdSAndroid Build Coastguard WorkerThis program summarizes scheduler queue length as a histogram, and can also
5*387f9dfdSAndroid Build Coastguard Workershow run queue occupancy. It works by sampling the run queue length on all
6*387f9dfdSAndroid Build Coastguard WorkerCPUs at 99 Hertz.
7*387f9dfdSAndroid Build Coastguard Worker
8*387f9dfdSAndroid Build Coastguard WorkerAs an example, here is an idle system:
9*387f9dfdSAndroid Build Coastguard Worker
10*387f9dfdSAndroid Build Coastguard Worker# ./runqlen.py
11*387f9dfdSAndroid Build Coastguard WorkerSampling run queue length... Hit Ctrl-C to end.
12*387f9dfdSAndroid Build Coastguard Worker^C
13*387f9dfdSAndroid Build Coastguard Worker     runqlen       : count     distribution
14*387f9dfdSAndroid Build Coastguard Worker        0          : 1776     |****************************************|
15*387f9dfdSAndroid Build Coastguard Worker
16*387f9dfdSAndroid Build Coastguard WorkerThis shows a zero run queue length each time it was sampled.
17*387f9dfdSAndroid Build Coastguard Worker
18*387f9dfdSAndroid Build Coastguard WorkerAnd now a heavily loaded system:
19*387f9dfdSAndroid Build Coastguard Worker
20*387f9dfdSAndroid Build Coastguard Worker# ./runqlen.py
21*387f9dfdSAndroid Build Coastguard WorkerSampling run queue length... Hit Ctrl-C to end.
22*387f9dfdSAndroid Build Coastguard Worker^C
23*387f9dfdSAndroid Build Coastguard Worker     runqlen       : count     distribution
24*387f9dfdSAndroid Build Coastguard Worker        0          : 1068     |****************************************|
25*387f9dfdSAndroid Build Coastguard Worker        1          : 642      |************************                |
26*387f9dfdSAndroid Build Coastguard Worker        2          : 369      |*************                           |
27*387f9dfdSAndroid Build Coastguard Worker        3          : 183      |******                                  |
28*387f9dfdSAndroid Build Coastguard Worker        4          : 104      |***                                     |
29*387f9dfdSAndroid Build Coastguard Worker        5          : 42       |*                                       |
30*387f9dfdSAndroid Build Coastguard Worker        6          : 13       |                                        |
31*387f9dfdSAndroid Build Coastguard Worker        7          : 2        |                                        |
32*387f9dfdSAndroid Build Coastguard Worker        8          : 1        |                                        |
33*387f9dfdSAndroid Build Coastguard Worker
34*387f9dfdSAndroid Build Coastguard WorkerNow there is often threads queued, with one sample reaching a queue length
35*387f9dfdSAndroid Build Coastguard Workerof 8. This will cause run queue latency, which can be measured by the bcc
36*387f9dfdSAndroid Build Coastguard Workerrunqlat tool.
37*387f9dfdSAndroid Build Coastguard Worker
38*387f9dfdSAndroid Build Coastguard Worker
39*387f9dfdSAndroid Build Coastguard WorkerHere's an example of an issue that runqlen can identify. Starting with the
40*387f9dfdSAndroid Build Coastguard Workersystem-wide summary:
41*387f9dfdSAndroid Build Coastguard Worker
42*387f9dfdSAndroid Build Coastguard Worker# ./runqlen.py
43*387f9dfdSAndroid Build Coastguard WorkerSampling run queue length... Hit Ctrl-C to end.
44*387f9dfdSAndroid Build Coastguard Worker^C
45*387f9dfdSAndroid Build Coastguard Worker     runqlen       : count     distribution
46*387f9dfdSAndroid Build Coastguard Worker        0          : 1209     |****************************************|
47*387f9dfdSAndroid Build Coastguard Worker        1          : 372      |************                            |
48*387f9dfdSAndroid Build Coastguard Worker        2          : 73       |**                                      |
49*387f9dfdSAndroid Build Coastguard Worker        3          : 3        |                                        |
50*387f9dfdSAndroid Build Coastguard Worker        4          : 1        |                                        |
51*387f9dfdSAndroid Build Coastguard Worker        5          : 0        |                                        |
52*387f9dfdSAndroid Build Coastguard Worker        6          : 0        |                                        |
53*387f9dfdSAndroid Build Coastguard Worker        7          : 237      |*******                                 |
54*387f9dfdSAndroid Build Coastguard Worker
55*387f9dfdSAndroid Build Coastguard WorkerThis shows there is often a run queue length of 7. Now using the -C option to
56*387f9dfdSAndroid Build Coastguard Workersee per-CPU histograms:
57*387f9dfdSAndroid Build Coastguard Worker
58*387f9dfdSAndroid Build Coastguard Worker# ./runqlen.py -C
59*387f9dfdSAndroid Build Coastguard WorkerSampling run queue length... Hit Ctrl-C to end.
60*387f9dfdSAndroid Build Coastguard Worker^C
61*387f9dfdSAndroid Build Coastguard Worker
62*387f9dfdSAndroid Build Coastguard Workercpu = 0
63*387f9dfdSAndroid Build Coastguard Worker     runqlen       : count     distribution
64*387f9dfdSAndroid Build Coastguard Worker        0          : 257      |****************************************|
65*387f9dfdSAndroid Build Coastguard Worker        1          : 64       |*********                               |
66*387f9dfdSAndroid Build Coastguard Worker        2          : 5        |                                        |
67*387f9dfdSAndroid Build Coastguard Worker        3          : 0        |                                        |
68*387f9dfdSAndroid Build Coastguard Worker        4          : 0        |                                        |
69*387f9dfdSAndroid Build Coastguard Worker        5          : 0        |                                        |
70*387f9dfdSAndroid Build Coastguard Worker        6          : 1        |                                        |
71*387f9dfdSAndroid Build Coastguard Worker
72*387f9dfdSAndroid Build Coastguard Workercpu = 1
73*387f9dfdSAndroid Build Coastguard Worker     runqlen       : count     distribution
74*387f9dfdSAndroid Build Coastguard Worker        0          : 226      |****************************************|
75*387f9dfdSAndroid Build Coastguard Worker        1          : 90       |***************                         |
76*387f9dfdSAndroid Build Coastguard Worker        2          : 11       |*                                       |
77*387f9dfdSAndroid Build Coastguard Worker
78*387f9dfdSAndroid Build Coastguard Workercpu = 2
79*387f9dfdSAndroid Build Coastguard Worker     runqlen       : count     distribution
80*387f9dfdSAndroid Build Coastguard Worker        0          : 264      |****************************************|
81*387f9dfdSAndroid Build Coastguard Worker        1          : 52       |*******                                 |
82*387f9dfdSAndroid Build Coastguard Worker        2          : 8        |*                                       |
83*387f9dfdSAndroid Build Coastguard Worker        3          : 1        |                                        |
84*387f9dfdSAndroid Build Coastguard Worker        4          : 0        |                                        |
85*387f9dfdSAndroid Build Coastguard Worker        5          : 0        |                                        |
86*387f9dfdSAndroid Build Coastguard Worker        6          : 1        |                                        |
87*387f9dfdSAndroid Build Coastguard Worker        7          : 0        |                                        |
88*387f9dfdSAndroid Build Coastguard Worker        8          : 1        |                                        |
89*387f9dfdSAndroid Build Coastguard Worker
90*387f9dfdSAndroid Build Coastguard Workercpu = 3
91*387f9dfdSAndroid Build Coastguard Worker     runqlen       : count     distribution
92*387f9dfdSAndroid Build Coastguard Worker        0          : 0        |                                        |
93*387f9dfdSAndroid Build Coastguard Worker        1          : 0        |                                        |
94*387f9dfdSAndroid Build Coastguard Worker        2          : 0        |                                        |
95*387f9dfdSAndroid Build Coastguard Worker        3          : 0        |                                        |
96*387f9dfdSAndroid Build Coastguard Worker        4          : 0        |                                        |
97*387f9dfdSAndroid Build Coastguard Worker        5          : 0        |                                        |
98*387f9dfdSAndroid Build Coastguard Worker        6          : 0        |                                        |
99*387f9dfdSAndroid Build Coastguard Worker        7          : 327      |****************************************|
100*387f9dfdSAndroid Build Coastguard Worker
101*387f9dfdSAndroid Build Coastguard Workercpu = 4
102*387f9dfdSAndroid Build Coastguard Worker     runqlen       : count     distribution
103*387f9dfdSAndroid Build Coastguard Worker        0          : 255      |****************************************|
104*387f9dfdSAndroid Build Coastguard Worker        1          : 63       |*********                               |
105*387f9dfdSAndroid Build Coastguard Worker        2          : 9        |*                                       |
106*387f9dfdSAndroid Build Coastguard Worker
107*387f9dfdSAndroid Build Coastguard Workercpu = 5
108*387f9dfdSAndroid Build Coastguard Worker     runqlen       : count     distribution
109*387f9dfdSAndroid Build Coastguard Worker        0          : 244      |****************************************|
110*387f9dfdSAndroid Build Coastguard Worker        1          : 78       |************                            |
111*387f9dfdSAndroid Build Coastguard Worker        2          : 3        |                                        |
112*387f9dfdSAndroid Build Coastguard Worker        3          : 2        |                                        |
113*387f9dfdSAndroid Build Coastguard Worker
114*387f9dfdSAndroid Build Coastguard Workercpu = 6
115*387f9dfdSAndroid Build Coastguard Worker     runqlen       : count     distribution
116*387f9dfdSAndroid Build Coastguard Worker        0          : 253      |****************************************|
117*387f9dfdSAndroid Build Coastguard Worker        1          : 66       |**********                              |
118*387f9dfdSAndroid Build Coastguard Worker        2          : 6        |                                        |
119*387f9dfdSAndroid Build Coastguard Worker        3          : 1        |                                        |
120*387f9dfdSAndroid Build Coastguard Worker        4          : 1        |                                        |
121*387f9dfdSAndroid Build Coastguard Worker
122*387f9dfdSAndroid Build Coastguard Workercpu = 7
123*387f9dfdSAndroid Build Coastguard Worker     runqlen       : count     distribution
124*387f9dfdSAndroid Build Coastguard Worker        0          : 243      |****************************************|
125*387f9dfdSAndroid Build Coastguard Worker        1          : 74       |************                            |
126*387f9dfdSAndroid Build Coastguard Worker        2          : 6        |                                        |
127*387f9dfdSAndroid Build Coastguard Worker        3          : 1        |                                        |
128*387f9dfdSAndroid Build Coastguard Worker        4          : 0        |                                        |
129*387f9dfdSAndroid Build Coastguard Worker        5          : 1        |                                        |
130*387f9dfdSAndroid Build Coastguard Worker        6          : 2        |                                        |
131*387f9dfdSAndroid Build Coastguard Worker
132*387f9dfdSAndroid Build Coastguard WorkerThe run queue length of 7 is isolated to CPU 3. It was caused by CPU binding
133*387f9dfdSAndroid Build Coastguard Worker(taskset). This can sometimes happen by applications that try to auto-bind
134*387f9dfdSAndroid Build Coastguard Workerto CPUs, leaving other CPUs idle while work is queued.
135*387f9dfdSAndroid Build Coastguard Worker
136*387f9dfdSAndroid Build Coastguard Worker
137*387f9dfdSAndroid Build Coastguard Workerrunqlat accepts an interval and a count. For example, with -T for timestamps:
138*387f9dfdSAndroid Build Coastguard Worker
139*387f9dfdSAndroid Build Coastguard Worker# ./runqlen.py -T 1 5
140*387f9dfdSAndroid Build Coastguard WorkerSampling run queue length... Hit Ctrl-C to end.
141*387f9dfdSAndroid Build Coastguard Worker
142*387f9dfdSAndroid Build Coastguard Worker19:51:34
143*387f9dfdSAndroid Build Coastguard Worker     runqlen       : count     distribution
144*387f9dfdSAndroid Build Coastguard Worker        0          : 635      |****************************************|
145*387f9dfdSAndroid Build Coastguard Worker        1          : 142      |********                                |
146*387f9dfdSAndroid Build Coastguard Worker        2          : 13       |                                        |
147*387f9dfdSAndroid Build Coastguard Worker        3          : 0        |                                        |
148*387f9dfdSAndroid Build Coastguard Worker        4          : 1        |                                        |
149*387f9dfdSAndroid Build Coastguard Worker
150*387f9dfdSAndroid Build Coastguard Worker19:51:35
151*387f9dfdSAndroid Build Coastguard Worker     runqlen       : count     distribution
152*387f9dfdSAndroid Build Coastguard Worker        0          : 640      |****************************************|
153*387f9dfdSAndroid Build Coastguard Worker        1          : 136      |********                                |
154*387f9dfdSAndroid Build Coastguard Worker        2          : 13       |                                        |
155*387f9dfdSAndroid Build Coastguard Worker        3          : 1        |                                        |
156*387f9dfdSAndroid Build Coastguard Worker        4          : 0        |                                        |
157*387f9dfdSAndroid Build Coastguard Worker        5          : 0        |                                        |
158*387f9dfdSAndroid Build Coastguard Worker        6          : 0        |                                        |
159*387f9dfdSAndroid Build Coastguard Worker        7          : 0        |                                        |
160*387f9dfdSAndroid Build Coastguard Worker        8          : 0        |                                        |
161*387f9dfdSAndroid Build Coastguard Worker        9          : 0        |                                        |
162*387f9dfdSAndroid Build Coastguard Worker        10         : 1        |                                        |
163*387f9dfdSAndroid Build Coastguard Worker
164*387f9dfdSAndroid Build Coastguard Worker19:51:36
165*387f9dfdSAndroid Build Coastguard Worker     runqlen       : count     distribution
166*387f9dfdSAndroid Build Coastguard Worker        0          : 603      |****************************************|
167*387f9dfdSAndroid Build Coastguard Worker        1          : 170      |***********                             |
168*387f9dfdSAndroid Build Coastguard Worker        2          : 16       |*                                       |
169*387f9dfdSAndroid Build Coastguard Worker        3          : 1        |                                        |
170*387f9dfdSAndroid Build Coastguard Worker        4          : 0        |                                        |
171*387f9dfdSAndroid Build Coastguard Worker        5          : 0        |                                        |
172*387f9dfdSAndroid Build Coastguard Worker        6          : 0        |                                        |
173*387f9dfdSAndroid Build Coastguard Worker        7          : 0        |                                        |
174*387f9dfdSAndroid Build Coastguard Worker        8          : 0        |                                        |
175*387f9dfdSAndroid Build Coastguard Worker        9          : 1        |                                        |
176*387f9dfdSAndroid Build Coastguard Worker
177*387f9dfdSAndroid Build Coastguard Worker19:51:37
178*387f9dfdSAndroid Build Coastguard Worker     runqlen       : count     distribution
179*387f9dfdSAndroid Build Coastguard Worker        0          : 617      |****************************************|
180*387f9dfdSAndroid Build Coastguard Worker        1          : 154      |*********                               |
181*387f9dfdSAndroid Build Coastguard Worker        2          : 20       |*                                       |
182*387f9dfdSAndroid Build Coastguard Worker        3          : 0        |                                        |
183*387f9dfdSAndroid Build Coastguard Worker        4          : 0        |                                        |
184*387f9dfdSAndroid Build Coastguard Worker        5          : 0        |                                        |
185*387f9dfdSAndroid Build Coastguard Worker        6          : 0        |                                        |
186*387f9dfdSAndroid Build Coastguard Worker        7          : 0        |                                        |
187*387f9dfdSAndroid Build Coastguard Worker        8          : 0        |                                        |
188*387f9dfdSAndroid Build Coastguard Worker        9          : 0        |                                        |
189*387f9dfdSAndroid Build Coastguard Worker        10         : 0        |                                        |
190*387f9dfdSAndroid Build Coastguard Worker        11         : 1        |                                        |
191*387f9dfdSAndroid Build Coastguard Worker
192*387f9dfdSAndroid Build Coastguard Worker19:51:38
193*387f9dfdSAndroid Build Coastguard Worker     runqlen       : count     distribution
194*387f9dfdSAndroid Build Coastguard Worker        0          : 603      |****************************************|
195*387f9dfdSAndroid Build Coastguard Worker        1          : 161      |**********                              |
196*387f9dfdSAndroid Build Coastguard Worker        2          : 24       |*                                       |
197*387f9dfdSAndroid Build Coastguard Worker        3          : 4        |                                        |
198*387f9dfdSAndroid Build Coastguard Worker
199*387f9dfdSAndroid Build Coastguard WorkerThe spikes in run queue length of 11 are likely threads waking up at the same
200*387f9dfdSAndroid Build Coastguard Workertime (a thundering herd), and then are scheduled and complete their execution
201*387f9dfdSAndroid Build Coastguard Workerquickly.
202*387f9dfdSAndroid Build Coastguard Worker
203*387f9dfdSAndroid Build Coastguard Worker
204*387f9dfdSAndroid Build Coastguard WorkerThe -O option prints run queue occupancy: the percentage of time that there
205*387f9dfdSAndroid Build Coastguard Workerwas work queued waiting its turn. Eg:
206*387f9dfdSAndroid Build Coastguard Worker
207*387f9dfdSAndroid Build Coastguard Worker# ./runqlen.py -OT 1
208*387f9dfdSAndroid Build Coastguard WorkerSampling run queue length... Hit Ctrl-C to end.
209*387f9dfdSAndroid Build Coastguard Worker
210*387f9dfdSAndroid Build Coastguard Worker19:54:53
211*387f9dfdSAndroid Build Coastguard Workerrunqocc: 41.09%
212*387f9dfdSAndroid Build Coastguard Worker
213*387f9dfdSAndroid Build Coastguard Worker19:54:54
214*387f9dfdSAndroid Build Coastguard Workerrunqocc: 41.85%
215*387f9dfdSAndroid Build Coastguard Worker
216*387f9dfdSAndroid Build Coastguard Worker19:54:55
217*387f9dfdSAndroid Build Coastguard Workerrunqocc: 41.47%
218*387f9dfdSAndroid Build Coastguard Worker
219*387f9dfdSAndroid Build Coastguard Worker19:54:56
220*387f9dfdSAndroid Build Coastguard Workerrunqocc: 42.35%
221*387f9dfdSAndroid Build Coastguard Worker
222*387f9dfdSAndroid Build Coastguard Worker19:54:57
223*387f9dfdSAndroid Build Coastguard Workerrunqocc: 40.83%
224*387f9dfdSAndroid Build Coastguard Worker[...]
225*387f9dfdSAndroid Build Coastguard Worker
226*387f9dfdSAndroid Build Coastguard WorkerThis can also be examined per-CPU:
227*387f9dfdSAndroid Build Coastguard Worker
228*387f9dfdSAndroid Build Coastguard Worker# ./runqlen.py -COT 1
229*387f9dfdSAndroid Build Coastguard WorkerSampling run queue length... Hit Ctrl-C to end.
230*387f9dfdSAndroid Build Coastguard Worker
231*387f9dfdSAndroid Build Coastguard Worker19:55:03
232*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 0    32.32%
233*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 1    26.26%
234*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 2    38.38%
235*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 3   100.00%
236*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 4    26.26%
237*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 5    32.32%
238*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 6    39.39%
239*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 7    46.46%
240*387f9dfdSAndroid Build Coastguard Worker
241*387f9dfdSAndroid Build Coastguard Worker19:55:04
242*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 0    35.00%
243*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 1    32.32%
244*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 2    37.00%
245*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 3   100.00%
246*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 4    43.43%
247*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 5    31.31%
248*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 6    28.00%
249*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 7    31.31%
250*387f9dfdSAndroid Build Coastguard Worker
251*387f9dfdSAndroid Build Coastguard Worker19:55:05
252*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 0    43.43%
253*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 1    32.32%
254*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 2    45.45%
255*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 3   100.00%
256*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 4    29.29%
257*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 5    36.36%
258*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 6    36.36%
259*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 7    30.30%
260*387f9dfdSAndroid Build Coastguard Worker
261*387f9dfdSAndroid Build Coastguard Worker19:55:06
262*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 0    40.00%
263*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 1    38.00%
264*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 2    31.31%
265*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 3   100.00%
266*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 4    31.31%
267*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 5    28.28%
268*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 6    31.00%
269*387f9dfdSAndroid Build Coastguard Workerrunqocc, CPU 7    29.29%
270*387f9dfdSAndroid Build Coastguard Worker[...]
271*387f9dfdSAndroid Build Coastguard Worker
272*387f9dfdSAndroid Build Coastguard Worker
273*387f9dfdSAndroid Build Coastguard WorkerUSAGE message:
274*387f9dfdSAndroid Build Coastguard Worker
275*387f9dfdSAndroid Build Coastguard Worker# ./runqlen -h
276*387f9dfdSAndroid Build Coastguard Workerusage: runqlen [-h] [-T] [-O] [-C] [interval] [count]
277*387f9dfdSAndroid Build Coastguard Worker
278*387f9dfdSAndroid Build Coastguard WorkerSummarize scheduler run queue length as a histogram
279*387f9dfdSAndroid Build Coastguard Worker
280*387f9dfdSAndroid Build Coastguard Workerpositional arguments:
281*387f9dfdSAndroid Build Coastguard Worker  interval         output interval, in seconds
282*387f9dfdSAndroid Build Coastguard Worker  count            number of outputs
283*387f9dfdSAndroid Build Coastguard Worker
284*387f9dfdSAndroid Build Coastguard Workeroptional arguments:
285*387f9dfdSAndroid Build Coastguard Worker  -h, --help       show this help message and exit
286*387f9dfdSAndroid Build Coastguard Worker  -T, --timestamp  include timestamp on output
287*387f9dfdSAndroid Build Coastguard Worker  -O, --runqocc    report run queue occupancy
288*387f9dfdSAndroid Build Coastguard Worker  -C, --cpus       print output for each CPU separately
289*387f9dfdSAndroid Build Coastguard Worker
290*387f9dfdSAndroid Build Coastguard Workerexamples:
291*387f9dfdSAndroid Build Coastguard Worker    ./runqlen            # summarize run queue length as a histogram
292*387f9dfdSAndroid Build Coastguard Worker    ./runqlen 1 10       # print 1 second summaries, 10 times
293*387f9dfdSAndroid Build Coastguard Worker    ./runqlen -T 1       # 1s summaries and timestamps
294*387f9dfdSAndroid Build Coastguard Worker    ./runqlen -O         # report run queue occupancy
295*387f9dfdSAndroid Build Coastguard Worker    ./runqlen -C         # show each CPU separately
296