xref: /aosp_15_r20/external/bcc/tools/offcputime_example.txt (revision 387f9dfdfa2baef462e92476d413c7bc2470293e)
1*387f9dfdSAndroid Build Coastguard WorkerDemonstrations of offcputime, the Linux eBPF/bcc version.
2*387f9dfdSAndroid Build Coastguard Worker
3*387f9dfdSAndroid Build Coastguard Worker
4*387f9dfdSAndroid Build Coastguard WorkerThis program shows stack traces that were blocked, and the total duration they
5*387f9dfdSAndroid Build Coastguard Workerwere blocked. It works by tracing when threads block and when they return to
6*387f9dfdSAndroid Build Coastguard WorkerCPU, measuring both the time they were blocked (aka the "off-CPU time") and the
7*387f9dfdSAndroid Build Coastguard Workerblocked stack trace and the task name. This data is summarized in kernel by
8*387f9dfdSAndroid Build Coastguard Workersumming the blocked time by unique stack trace and task name.
9*387f9dfdSAndroid Build Coastguard Worker
10*387f9dfdSAndroid Build Coastguard WorkerHere is some example output. The -K option was used to only match kernel stacks.
11*387f9dfdSAndroid Build Coastguard WorkerTo explain what we are seeing: the very first stack trace looks like a page
12*387f9dfdSAndroid Build Coastguard Workerfault (do_page_fault() etc) from the "chmod" command, and in total was off-CPU
13*387f9dfdSAndroid Build Coastguard Workerfor 13 microseconds.
14*387f9dfdSAndroid Build Coastguard Worker
15*387f9dfdSAndroid Build Coastguard Worker# ./offcputime -K
16*387f9dfdSAndroid Build Coastguard WorkerTracing off-CPU time (us) of all threads by kernel stack... Hit Ctrl-C to end.
17*387f9dfdSAndroid Build Coastguard Worker^C
18*387f9dfdSAndroid Build Coastguard Worker    schedule
19*387f9dfdSAndroid Build Coastguard Worker    schedule_timeout
20*387f9dfdSAndroid Build Coastguard Worker    io_schedule_timeout
21*387f9dfdSAndroid Build Coastguard Worker    bit_wait_io
22*387f9dfdSAndroid Build Coastguard Worker    __wait_on_bit
23*387f9dfdSAndroid Build Coastguard Worker    wait_on_page_bit_killable
24*387f9dfdSAndroid Build Coastguard Worker    __lock_page_or_retry
25*387f9dfdSAndroid Build Coastguard Worker    filemap_fault
26*387f9dfdSAndroid Build Coastguard Worker    __do_fault
27*387f9dfdSAndroid Build Coastguard Worker    handle_mm_fault
28*387f9dfdSAndroid Build Coastguard Worker    __do_page_fault
29*387f9dfdSAndroid Build Coastguard Worker    do_page_fault
30*387f9dfdSAndroid Build Coastguard Worker    page_fault
31*387f9dfdSAndroid Build Coastguard Worker    chmod
32*387f9dfdSAndroid Build Coastguard Worker        13
33*387f9dfdSAndroid Build Coastguard Worker
34*387f9dfdSAndroid Build Coastguard Worker    schedule
35*387f9dfdSAndroid Build Coastguard Worker    rcu_nocb_kthread
36*387f9dfdSAndroid Build Coastguard Worker    kthread
37*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
38*387f9dfdSAndroid Build Coastguard Worker    ddebug_tables
39*387f9dfdSAndroid Build Coastguard Worker    rcuos/0
40*387f9dfdSAndroid Build Coastguard Worker        22
41*387f9dfdSAndroid Build Coastguard Worker
42*387f9dfdSAndroid Build Coastguard Worker    schedule
43*387f9dfdSAndroid Build Coastguard Worker    schedule_timeout
44*387f9dfdSAndroid Build Coastguard Worker    io_schedule_timeout
45*387f9dfdSAndroid Build Coastguard Worker    bit_wait_io
46*387f9dfdSAndroid Build Coastguard Worker    __wait_on_bit_lock
47*387f9dfdSAndroid Build Coastguard Worker    __lock_page
48*387f9dfdSAndroid Build Coastguard Worker    lock_page
49*387f9dfdSAndroid Build Coastguard Worker    __do_fault
50*387f9dfdSAndroid Build Coastguard Worker    handle_mm_fault
51*387f9dfdSAndroid Build Coastguard Worker    __do_page_fault
52*387f9dfdSAndroid Build Coastguard Worker    do_page_fault
53*387f9dfdSAndroid Build Coastguard Worker    page_fault
54*387f9dfdSAndroid Build Coastguard Worker    run
55*387f9dfdSAndroid Build Coastguard Worker        27
56*387f9dfdSAndroid Build Coastguard Worker
57*387f9dfdSAndroid Build Coastguard Worker    schedule
58*387f9dfdSAndroid Build Coastguard Worker    schedule_timeout
59*387f9dfdSAndroid Build Coastguard Worker    io_schedule_timeout
60*387f9dfdSAndroid Build Coastguard Worker    bit_wait_io
61*387f9dfdSAndroid Build Coastguard Worker    __wait_on_bit
62*387f9dfdSAndroid Build Coastguard Worker    wait_on_page_bit_killable
63*387f9dfdSAndroid Build Coastguard Worker    __lock_page_or_retry
64*387f9dfdSAndroid Build Coastguard Worker    filemap_fault
65*387f9dfdSAndroid Build Coastguard Worker    __do_fault
66*387f9dfdSAndroid Build Coastguard Worker    handle_mm_fault
67*387f9dfdSAndroid Build Coastguard Worker    __do_page_fault
68*387f9dfdSAndroid Build Coastguard Worker    do_page_fault
69*387f9dfdSAndroid Build Coastguard Worker    page_fault
70*387f9dfdSAndroid Build Coastguard Worker    clear_user
71*387f9dfdSAndroid Build Coastguard Worker    padzero
72*387f9dfdSAndroid Build Coastguard Worker    load_elf_binary
73*387f9dfdSAndroid Build Coastguard Worker    search_binary_handler
74*387f9dfdSAndroid Build Coastguard Worker    load_script
75*387f9dfdSAndroid Build Coastguard Worker    search_binary_handler
76*387f9dfdSAndroid Build Coastguard Worker    do_execveat_common.isra.27
77*387f9dfdSAndroid Build Coastguard Worker    run
78*387f9dfdSAndroid Build Coastguard Worker        28
79*387f9dfdSAndroid Build Coastguard Worker
80*387f9dfdSAndroid Build Coastguard Worker    schedule
81*387f9dfdSAndroid Build Coastguard Worker    schedule_timeout
82*387f9dfdSAndroid Build Coastguard Worker    io_schedule_timeout
83*387f9dfdSAndroid Build Coastguard Worker    bit_wait_io
84*387f9dfdSAndroid Build Coastguard Worker    __wait_on_bit
85*387f9dfdSAndroid Build Coastguard Worker    wait_on_page_bit_killable
86*387f9dfdSAndroid Build Coastguard Worker    __lock_page_or_retry
87*387f9dfdSAndroid Build Coastguard Worker    filemap_fault
88*387f9dfdSAndroid Build Coastguard Worker    __do_fault
89*387f9dfdSAndroid Build Coastguard Worker    handle_mm_fault
90*387f9dfdSAndroid Build Coastguard Worker    __do_page_fault
91*387f9dfdSAndroid Build Coastguard Worker    do_page_fault
92*387f9dfdSAndroid Build Coastguard Worker    page_fault
93*387f9dfdSAndroid Build Coastguard Worker    run
94*387f9dfdSAndroid Build Coastguard Worker        82
95*387f9dfdSAndroid Build Coastguard Worker
96*387f9dfdSAndroid Build Coastguard Worker    schedule
97*387f9dfdSAndroid Build Coastguard Worker    pipe_wait
98*387f9dfdSAndroid Build Coastguard Worker    pipe_read
99*387f9dfdSAndroid Build Coastguard Worker    __vfs_read
100*387f9dfdSAndroid Build Coastguard Worker    vfs_read
101*387f9dfdSAndroid Build Coastguard Worker    sys_read
102*387f9dfdSAndroid Build Coastguard Worker    entry_SYSCALL_64_fastpath
103*387f9dfdSAndroid Build Coastguard Worker    bash
104*387f9dfdSAndroid Build Coastguard Worker        94
105*387f9dfdSAndroid Build Coastguard Worker
106*387f9dfdSAndroid Build Coastguard Worker    schedule
107*387f9dfdSAndroid Build Coastguard Worker    rcu_gp_kthread
108*387f9dfdSAndroid Build Coastguard Worker    kthread
109*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
110*387f9dfdSAndroid Build Coastguard Worker    ddebug_tables
111*387f9dfdSAndroid Build Coastguard Worker    rcu_sched
112*387f9dfdSAndroid Build Coastguard Worker        104
113*387f9dfdSAndroid Build Coastguard Worker
114*387f9dfdSAndroid Build Coastguard Worker    schedule
115*387f9dfdSAndroid Build Coastguard Worker    schedule_timeout
116*387f9dfdSAndroid Build Coastguard Worker    io_schedule_timeout
117*387f9dfdSAndroid Build Coastguard Worker    bit_wait_io
118*387f9dfdSAndroid Build Coastguard Worker    __wait_on_bit
119*387f9dfdSAndroid Build Coastguard Worker    out_of_line_wait_on_bit
120*387f9dfdSAndroid Build Coastguard Worker    __wait_on_buffer
121*387f9dfdSAndroid Build Coastguard Worker    jbd2_journal_commit_transaction
122*387f9dfdSAndroid Build Coastguard Worker    kjournald2
123*387f9dfdSAndroid Build Coastguard Worker    kthread
124*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
125*387f9dfdSAndroid Build Coastguard Worker    mb_cache_list
126*387f9dfdSAndroid Build Coastguard Worker    jbd2/xvda1-8
127*387f9dfdSAndroid Build Coastguard Worker        986
128*387f9dfdSAndroid Build Coastguard Worker
129*387f9dfdSAndroid Build Coastguard Worker    schedule
130*387f9dfdSAndroid Build Coastguard Worker    schedule_timeout
131*387f9dfdSAndroid Build Coastguard Worker    io_schedule_timeout
132*387f9dfdSAndroid Build Coastguard Worker    bit_wait_io
133*387f9dfdSAndroid Build Coastguard Worker    __wait_on_bit
134*387f9dfdSAndroid Build Coastguard Worker    out_of_line_wait_on_bit
135*387f9dfdSAndroid Build Coastguard Worker    __wait_on_buffer
136*387f9dfdSAndroid Build Coastguard Worker    jbd2_journal_commit_transaction
137*387f9dfdSAndroid Build Coastguard Worker    kjournald2
138*387f9dfdSAndroid Build Coastguard Worker    kthread
139*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
140*387f9dfdSAndroid Build Coastguard Worker    mb_cache_list
141*387f9dfdSAndroid Build Coastguard Worker    jbd2/xvda1-8
142*387f9dfdSAndroid Build Coastguard Worker        6630
143*387f9dfdSAndroid Build Coastguard Worker
144*387f9dfdSAndroid Build Coastguard Worker    schedule
145*387f9dfdSAndroid Build Coastguard Worker    schedule_timeout
146*387f9dfdSAndroid Build Coastguard Worker    io_schedule_timeout
147*387f9dfdSAndroid Build Coastguard Worker    bit_wait_io
148*387f9dfdSAndroid Build Coastguard Worker    __wait_on_bit
149*387f9dfdSAndroid Build Coastguard Worker    out_of_line_wait_on_bit
150*387f9dfdSAndroid Build Coastguard Worker    do_get_write_access
151*387f9dfdSAndroid Build Coastguard Worker    jbd2_journal_get_write_access
152*387f9dfdSAndroid Build Coastguard Worker    __ext4_journal_get_write_access
153*387f9dfdSAndroid Build Coastguard Worker    ext4_mb_mark_diskspace_used
154*387f9dfdSAndroid Build Coastguard Worker    ext4_mb_new_blocks
155*387f9dfdSAndroid Build Coastguard Worker    ext4_ext_map_blocks
156*387f9dfdSAndroid Build Coastguard Worker    ext4_map_blocks
157*387f9dfdSAndroid Build Coastguard Worker    ext4_writepages
158*387f9dfdSAndroid Build Coastguard Worker    do_writepages
159*387f9dfdSAndroid Build Coastguard Worker    __filemap_fdatawrite_range
160*387f9dfdSAndroid Build Coastguard Worker    filemap_flush
161*387f9dfdSAndroid Build Coastguard Worker    ext4_alloc_da_blocks
162*387f9dfdSAndroid Build Coastguard Worker    ext4_rename
163*387f9dfdSAndroid Build Coastguard Worker    ext4_rename2
164*387f9dfdSAndroid Build Coastguard Worker    supervise
165*387f9dfdSAndroid Build Coastguard Worker        6645
166*387f9dfdSAndroid Build Coastguard Worker
167*387f9dfdSAndroid Build Coastguard Worker    schedule
168*387f9dfdSAndroid Build Coastguard Worker    schedule_timeout
169*387f9dfdSAndroid Build Coastguard Worker    io_schedule_timeout
170*387f9dfdSAndroid Build Coastguard Worker    bit_wait_io
171*387f9dfdSAndroid Build Coastguard Worker    __wait_on_bit
172*387f9dfdSAndroid Build Coastguard Worker    out_of_line_wait_on_bit
173*387f9dfdSAndroid Build Coastguard Worker    do_get_write_access
174*387f9dfdSAndroid Build Coastguard Worker    jbd2_journal_get_write_access
175*387f9dfdSAndroid Build Coastguard Worker    __ext4_journal_get_write_access
176*387f9dfdSAndroid Build Coastguard Worker    __ext4_new_inode
177*387f9dfdSAndroid Build Coastguard Worker    ext4_create
178*387f9dfdSAndroid Build Coastguard Worker    vfs_create
179*387f9dfdSAndroid Build Coastguard Worker    path_openat
180*387f9dfdSAndroid Build Coastguard Worker    do_filp_open
181*387f9dfdSAndroid Build Coastguard Worker    do_sys_open
182*387f9dfdSAndroid Build Coastguard Worker    sys_open
183*387f9dfdSAndroid Build Coastguard Worker    entry_SYSCALL_64_fastpath
184*387f9dfdSAndroid Build Coastguard Worker    supervise
185*387f9dfdSAndroid Build Coastguard Worker        12702
186*387f9dfdSAndroid Build Coastguard Worker
187*387f9dfdSAndroid Build Coastguard Worker    schedule
188*387f9dfdSAndroid Build Coastguard Worker    rcu_nocb_kthread
189*387f9dfdSAndroid Build Coastguard Worker    kthread
190*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
191*387f9dfdSAndroid Build Coastguard Worker    rcuos/2
192*387f9dfdSAndroid Build Coastguard Worker        16036
193*387f9dfdSAndroid Build Coastguard Worker
194*387f9dfdSAndroid Build Coastguard Worker    schedule
195*387f9dfdSAndroid Build Coastguard Worker    rcu_nocb_kthread
196*387f9dfdSAndroid Build Coastguard Worker    kthread
197*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
198*387f9dfdSAndroid Build Coastguard Worker    rcuos/4
199*387f9dfdSAndroid Build Coastguard Worker        24085
200*387f9dfdSAndroid Build Coastguard Worker
201*387f9dfdSAndroid Build Coastguard Worker    schedule
202*387f9dfdSAndroid Build Coastguard Worker    do_wait
203*387f9dfdSAndroid Build Coastguard Worker    sys_wait4
204*387f9dfdSAndroid Build Coastguard Worker    entry_SYSCALL_64_fastpath
205*387f9dfdSAndroid Build Coastguard Worker    run
206*387f9dfdSAndroid Build Coastguard Worker        233055
207*387f9dfdSAndroid Build Coastguard Worker
208*387f9dfdSAndroid Build Coastguard Worker    schedule
209*387f9dfdSAndroid Build Coastguard Worker    schedule_timeout
210*387f9dfdSAndroid Build Coastguard Worker    io_schedule_timeout
211*387f9dfdSAndroid Build Coastguard Worker    bit_wait_io
212*387f9dfdSAndroid Build Coastguard Worker    __wait_on_bit
213*387f9dfdSAndroid Build Coastguard Worker    wait_on_page_bit
214*387f9dfdSAndroid Build Coastguard Worker    truncate_inode_pages_range
215*387f9dfdSAndroid Build Coastguard Worker    truncate_inode_pages_final
216*387f9dfdSAndroid Build Coastguard Worker    ext4_evict_inode
217*387f9dfdSAndroid Build Coastguard Worker    evict
218*387f9dfdSAndroid Build Coastguard Worker    iput
219*387f9dfdSAndroid Build Coastguard Worker    __dentry_kill
220*387f9dfdSAndroid Build Coastguard Worker    dput
221*387f9dfdSAndroid Build Coastguard Worker    sys_rename
222*387f9dfdSAndroid Build Coastguard Worker    entry_SYSCALL_64_fastpath
223*387f9dfdSAndroid Build Coastguard Worker    supervise
224*387f9dfdSAndroid Build Coastguard Worker        297113
225*387f9dfdSAndroid Build Coastguard Worker
226*387f9dfdSAndroid Build Coastguard Worker    schedule
227*387f9dfdSAndroid Build Coastguard Worker    schedule_timeout
228*387f9dfdSAndroid Build Coastguard Worker    wait_woken
229*387f9dfdSAndroid Build Coastguard Worker    n_tty_read
230*387f9dfdSAndroid Build Coastguard Worker    tty_read
231*387f9dfdSAndroid Build Coastguard Worker    __vfs_read
232*387f9dfdSAndroid Build Coastguard Worker    vfs_read
233*387f9dfdSAndroid Build Coastguard Worker    sys_read
234*387f9dfdSAndroid Build Coastguard Worker    entry_SYSCALL_64_fastpath
235*387f9dfdSAndroid Build Coastguard Worker    bash
236*387f9dfdSAndroid Build Coastguard Worker        1789866
237*387f9dfdSAndroid Build Coastguard Worker
238*387f9dfdSAndroid Build Coastguard Worker    schedule
239*387f9dfdSAndroid Build Coastguard Worker    schedule_timeout
240*387f9dfdSAndroid Build Coastguard Worker    io_schedule_timeout
241*387f9dfdSAndroid Build Coastguard Worker    do_blockdev_direct_IO
242*387f9dfdSAndroid Build Coastguard Worker    __blockdev_direct_IO
243*387f9dfdSAndroid Build Coastguard Worker    blkdev_direct_IO
244*387f9dfdSAndroid Build Coastguard Worker    generic_file_read_iter
245*387f9dfdSAndroid Build Coastguard Worker    blkdev_read_iter
246*387f9dfdSAndroid Build Coastguard Worker    __vfs_read
247*387f9dfdSAndroid Build Coastguard Worker    vfs_read
248*387f9dfdSAndroid Build Coastguard Worker    sys_read
249*387f9dfdSAndroid Build Coastguard Worker    entry_SYSCALL_64_fastpath
250*387f9dfdSAndroid Build Coastguard Worker    dd
251*387f9dfdSAndroid Build Coastguard Worker        3310763
252*387f9dfdSAndroid Build Coastguard Worker
253*387f9dfdSAndroid Build Coastguard Worker    schedule
254*387f9dfdSAndroid Build Coastguard Worker    smpboot_thread_fn
255*387f9dfdSAndroid Build Coastguard Worker    kthread
256*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
257*387f9dfdSAndroid Build Coastguard Worker    watchdog/1
258*387f9dfdSAndroid Build Coastguard Worker        3999989
259*387f9dfdSAndroid Build Coastguard Worker
260*387f9dfdSAndroid Build Coastguard Worker    schedule
261*387f9dfdSAndroid Build Coastguard Worker    smpboot_thread_fn
262*387f9dfdSAndroid Build Coastguard Worker    kthread
263*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
264*387f9dfdSAndroid Build Coastguard Worker    watchdog/5
265*387f9dfdSAndroid Build Coastguard Worker        3999995
266*387f9dfdSAndroid Build Coastguard Worker
267*387f9dfdSAndroid Build Coastguard Worker    schedule
268*387f9dfdSAndroid Build Coastguard Worker    smpboot_thread_fn
269*387f9dfdSAndroid Build Coastguard Worker    kthread
270*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
271*387f9dfdSAndroid Build Coastguard Worker    watchdog/4
272*387f9dfdSAndroid Build Coastguard Worker        3999996
273*387f9dfdSAndroid Build Coastguard Worker
274*387f9dfdSAndroid Build Coastguard Worker    schedule
275*387f9dfdSAndroid Build Coastguard Worker    smpboot_thread_fn
276*387f9dfdSAndroid Build Coastguard Worker    kthread
277*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
278*387f9dfdSAndroid Build Coastguard Worker    watchdog/0
279*387f9dfdSAndroid Build Coastguard Worker        3999996
280*387f9dfdSAndroid Build Coastguard Worker
281*387f9dfdSAndroid Build Coastguard Worker    schedule
282*387f9dfdSAndroid Build Coastguard Worker    smpboot_thread_fn
283*387f9dfdSAndroid Build Coastguard Worker    kthread
284*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
285*387f9dfdSAndroid Build Coastguard Worker    watchdog/3
286*387f9dfdSAndroid Build Coastguard Worker        3999998
287*387f9dfdSAndroid Build Coastguard Worker
288*387f9dfdSAndroid Build Coastguard Worker    schedule
289*387f9dfdSAndroid Build Coastguard Worker    smpboot_thread_fn
290*387f9dfdSAndroid Build Coastguard Worker    kthread
291*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
292*387f9dfdSAndroid Build Coastguard Worker    watchdog/7
293*387f9dfdSAndroid Build Coastguard Worker        3999999
294*387f9dfdSAndroid Build Coastguard Worker
295*387f9dfdSAndroid Build Coastguard Worker    schedule
296*387f9dfdSAndroid Build Coastguard Worker    smpboot_thread_fn
297*387f9dfdSAndroid Build Coastguard Worker    kthread
298*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
299*387f9dfdSAndroid Build Coastguard Worker    watchdog/2
300*387f9dfdSAndroid Build Coastguard Worker        4000001
301*387f9dfdSAndroid Build Coastguard Worker
302*387f9dfdSAndroid Build Coastguard Worker    schedule
303*387f9dfdSAndroid Build Coastguard Worker    smpboot_thread_fn
304*387f9dfdSAndroid Build Coastguard Worker    kthread
305*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
306*387f9dfdSAndroid Build Coastguard Worker    watchdog/6
307*387f9dfdSAndroid Build Coastguard Worker        4000001
308*387f9dfdSAndroid Build Coastguard Worker
309*387f9dfdSAndroid Build Coastguard Worker    schedule
310*387f9dfdSAndroid Build Coastguard Worker    do_wait
311*387f9dfdSAndroid Build Coastguard Worker    sys_wait4
312*387f9dfdSAndroid Build Coastguard Worker    entry_SYSCALL_64_fastpath
313*387f9dfdSAndroid Build Coastguard Worker    bash
314*387f9dfdSAndroid Build Coastguard Worker        4039675
315*387f9dfdSAndroid Build Coastguard Worker
316*387f9dfdSAndroid Build Coastguard Worker    schedule
317*387f9dfdSAndroid Build Coastguard Worker    do_nanosleep
318*387f9dfdSAndroid Build Coastguard Worker    hrtimer_nanosleep
319*387f9dfdSAndroid Build Coastguard Worker    sys_nanosleep
320*387f9dfdSAndroid Build Coastguard Worker    entry_SYSCALL_64_fastpath
321*387f9dfdSAndroid Build Coastguard Worker    svscan
322*387f9dfdSAndroid Build Coastguard Worker        5000112
323*387f9dfdSAndroid Build Coastguard Worker
324*387f9dfdSAndroid Build Coastguard Worker    schedule
325*387f9dfdSAndroid Build Coastguard Worker    schedule_hrtimeout_range_clock
326*387f9dfdSAndroid Build Coastguard Worker    schedule_hrtimeout_range
327*387f9dfdSAndroid Build Coastguard Worker    poll_schedule_timeout
328*387f9dfdSAndroid Build Coastguard Worker    do_select
329*387f9dfdSAndroid Build Coastguard Worker    core_sys_select
330*387f9dfdSAndroid Build Coastguard Worker    sys_select
331*387f9dfdSAndroid Build Coastguard Worker    entry_SYSCALL_64_fastpath
332*387f9dfdSAndroid Build Coastguard Worker    snmpd
333*387f9dfdSAndroid Build Coastguard Worker        5998761
334*387f9dfdSAndroid Build Coastguard Worker
335*387f9dfdSAndroid Build Coastguard Worker    schedule
336*387f9dfdSAndroid Build Coastguard Worker    smpboot_thread_fn
337*387f9dfdSAndroid Build Coastguard Worker    kthread
338*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
339*387f9dfdSAndroid Build Coastguard Worker    migration/3
340*387f9dfdSAndroid Build Coastguard Worker        6149779
341*387f9dfdSAndroid Build Coastguard Worker
342*387f9dfdSAndroid Build Coastguard Worker    schedule
343*387f9dfdSAndroid Build Coastguard Worker    schedule_hrtimeout_range_clock
344*387f9dfdSAndroid Build Coastguard Worker    schedule_hrtimeout_range
345*387f9dfdSAndroid Build Coastguard Worker    poll_schedule_timeout
346*387f9dfdSAndroid Build Coastguard Worker    do_select
347*387f9dfdSAndroid Build Coastguard Worker    core_sys_select
348*387f9dfdSAndroid Build Coastguard Worker    sys_select
349*387f9dfdSAndroid Build Coastguard Worker    entry_SYSCALL_64_fastpath
350*387f9dfdSAndroid Build Coastguard Worker    ntpd
351*387f9dfdSAndroid Build Coastguard Worker        6999832
352*387f9dfdSAndroid Build Coastguard Worker
353*387f9dfdSAndroid Build Coastguard Worker    schedule
354*387f9dfdSAndroid Build Coastguard Worker    worker_thread
355*387f9dfdSAndroid Build Coastguard Worker    kthread
356*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
357*387f9dfdSAndroid Build Coastguard Worker    kworker/u16:2
358*387f9dfdSAndroid Build Coastguard Worker        7131941
359*387f9dfdSAndroid Build Coastguard Worker
360*387f9dfdSAndroid Build Coastguard Worker    schedule
361*387f9dfdSAndroid Build Coastguard Worker    worker_thread
362*387f9dfdSAndroid Build Coastguard Worker    kthread
363*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
364*387f9dfdSAndroid Build Coastguard Worker    kworker/3:0
365*387f9dfdSAndroid Build Coastguard Worker        7999844
366*387f9dfdSAndroid Build Coastguard Worker
367*387f9dfdSAndroid Build Coastguard Worker    schedule
368*387f9dfdSAndroid Build Coastguard Worker    worker_thread
369*387f9dfdSAndroid Build Coastguard Worker    kthread
370*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
371*387f9dfdSAndroid Build Coastguard Worker    kworker/1:1
372*387f9dfdSAndroid Build Coastguard Worker        7999872
373*387f9dfdSAndroid Build Coastguard Worker
374*387f9dfdSAndroid Build Coastguard Worker    schedule
375*387f9dfdSAndroid Build Coastguard Worker    worker_thread
376*387f9dfdSAndroid Build Coastguard Worker    kthread
377*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
378*387f9dfdSAndroid Build Coastguard Worker    kworker/2:1
379*387f9dfdSAndroid Build Coastguard Worker        7999889
380*387f9dfdSAndroid Build Coastguard Worker
381*387f9dfdSAndroid Build Coastguard Worker    schedule
382*387f9dfdSAndroid Build Coastguard Worker    worker_thread
383*387f9dfdSAndroid Build Coastguard Worker    kthread
384*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
385*387f9dfdSAndroid Build Coastguard Worker    kworker/5:1
386*387f9dfdSAndroid Build Coastguard Worker        7999936
387*387f9dfdSAndroid Build Coastguard Worker
388*387f9dfdSAndroid Build Coastguard Worker    schedule
389*387f9dfdSAndroid Build Coastguard Worker    worker_thread
390*387f9dfdSAndroid Build Coastguard Worker    kthread
391*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
392*387f9dfdSAndroid Build Coastguard Worker    kworker/7:1
393*387f9dfdSAndroid Build Coastguard Worker        7999938
394*387f9dfdSAndroid Build Coastguard Worker
395*387f9dfdSAndroid Build Coastguard Worker    schedule
396*387f9dfdSAndroid Build Coastguard Worker    worker_thread
397*387f9dfdSAndroid Build Coastguard Worker    kthread
398*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
399*387f9dfdSAndroid Build Coastguard Worker    kworker/6:1
400*387f9dfdSAndroid Build Coastguard Worker        7999940
401*387f9dfdSAndroid Build Coastguard Worker
402*387f9dfdSAndroid Build Coastguard Worker    schedule
403*387f9dfdSAndroid Build Coastguard Worker    do_nanosleep
404*387f9dfdSAndroid Build Coastguard Worker    hrtimer_nanosleep
405*387f9dfdSAndroid Build Coastguard Worker    sys_nanosleep
406*387f9dfdSAndroid Build Coastguard Worker    entry_SYSCALL_64_fastpath
407*387f9dfdSAndroid Build Coastguard Worker    tail
408*387f9dfdSAndroid Build Coastguard Worker        8000905
409*387f9dfdSAndroid Build Coastguard Worker
410*387f9dfdSAndroid Build Coastguard Worker    schedule
411*387f9dfdSAndroid Build Coastguard Worker    smpboot_thread_fn
412*387f9dfdSAndroid Build Coastguard Worker    kthread
413*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
414*387f9dfdSAndroid Build Coastguard Worker    migration/7
415*387f9dfdSAndroid Build Coastguard Worker        8197046
416*387f9dfdSAndroid Build Coastguard Worker
417*387f9dfdSAndroid Build Coastguard Worker    schedule
418*387f9dfdSAndroid Build Coastguard Worker    pipe_wait
419*387f9dfdSAndroid Build Coastguard Worker    pipe_read
420*387f9dfdSAndroid Build Coastguard Worker    __vfs_read
421*387f9dfdSAndroid Build Coastguard Worker    vfs_read
422*387f9dfdSAndroid Build Coastguard Worker    sys_read
423*387f9dfdSAndroid Build Coastguard Worker    entry_SYSCALL_64_fastpath
424*387f9dfdSAndroid Build Coastguard Worker    readproctitle
425*387f9dfdSAndroid Build Coastguard Worker        8197835
426*387f9dfdSAndroid Build Coastguard Worker
427*387f9dfdSAndroid Build Coastguard Worker    schedule
428*387f9dfdSAndroid Build Coastguard Worker    smpboot_thread_fn
429*387f9dfdSAndroid Build Coastguard Worker    kthread
430*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
431*387f9dfdSAndroid Build Coastguard Worker    migration/4
432*387f9dfdSAndroid Build Coastguard Worker        8201851
433*387f9dfdSAndroid Build Coastguard Worker
434*387f9dfdSAndroid Build Coastguard Worker    schedule
435*387f9dfdSAndroid Build Coastguard Worker    smpboot_thread_fn
436*387f9dfdSAndroid Build Coastguard Worker    kthread
437*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
438*387f9dfdSAndroid Build Coastguard Worker    migration/2
439*387f9dfdSAndroid Build Coastguard Worker        8203375
440*387f9dfdSAndroid Build Coastguard Worker
441*387f9dfdSAndroid Build Coastguard Worker    schedule
442*387f9dfdSAndroid Build Coastguard Worker    smpboot_thread_fn
443*387f9dfdSAndroid Build Coastguard Worker    kthread
444*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
445*387f9dfdSAndroid Build Coastguard Worker    migration/6
446*387f9dfdSAndroid Build Coastguard Worker        8208664
447*387f9dfdSAndroid Build Coastguard Worker
448*387f9dfdSAndroid Build Coastguard Worker    schedule
449*387f9dfdSAndroid Build Coastguard Worker    smpboot_thread_fn
450*387f9dfdSAndroid Build Coastguard Worker    kthread
451*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
452*387f9dfdSAndroid Build Coastguard Worker    migration/5
453*387f9dfdSAndroid Build Coastguard Worker        8209819
454*387f9dfdSAndroid Build Coastguard Worker
455*387f9dfdSAndroid Build Coastguard Worker    schedule
456*387f9dfdSAndroid Build Coastguard Worker    smpboot_thread_fn
457*387f9dfdSAndroid Build Coastguard Worker    kthread
458*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
459*387f9dfdSAndroid Build Coastguard Worker    ddebug_tables
460*387f9dfdSAndroid Build Coastguard Worker    migration/0
461*387f9dfdSAndroid Build Coastguard Worker        8211292
462*387f9dfdSAndroid Build Coastguard Worker
463*387f9dfdSAndroid Build Coastguard Worker    schedule
464*387f9dfdSAndroid Build Coastguard Worker    smpboot_thread_fn
465*387f9dfdSAndroid Build Coastguard Worker    kthread
466*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
467*387f9dfdSAndroid Build Coastguard Worker    migration/1
468*387f9dfdSAndroid Build Coastguard Worker        8212100
469*387f9dfdSAndroid Build Coastguard Worker
470*387f9dfdSAndroid Build Coastguard Worker    schedule
471*387f9dfdSAndroid Build Coastguard Worker    worker_thread
472*387f9dfdSAndroid Build Coastguard Worker    kthread
473*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
474*387f9dfdSAndroid Build Coastguard Worker    kworker/0:2
475*387f9dfdSAndroid Build Coastguard Worker        8270305
476*387f9dfdSAndroid Build Coastguard Worker
477*387f9dfdSAndroid Build Coastguard Worker    schedule
478*387f9dfdSAndroid Build Coastguard Worker    rcu_nocb_kthread
479*387f9dfdSAndroid Build Coastguard Worker    kthread
480*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
481*387f9dfdSAndroid Build Coastguard Worker    rcuos/3
482*387f9dfdSAndroid Build Coastguard Worker        8349697
483*387f9dfdSAndroid Build Coastguard Worker
484*387f9dfdSAndroid Build Coastguard Worker    schedule
485*387f9dfdSAndroid Build Coastguard Worker    rcu_nocb_kthread
486*387f9dfdSAndroid Build Coastguard Worker    kthread
487*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
488*387f9dfdSAndroid Build Coastguard Worker    rcuos/2
489*387f9dfdSAndroid Build Coastguard Worker        8363357
490*387f9dfdSAndroid Build Coastguard Worker
491*387f9dfdSAndroid Build Coastguard Worker    schedule
492*387f9dfdSAndroid Build Coastguard Worker    rcu_nocb_kthread
493*387f9dfdSAndroid Build Coastguard Worker    kthread
494*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
495*387f9dfdSAndroid Build Coastguard Worker    rcuos/1
496*387f9dfdSAndroid Build Coastguard Worker        8365338
497*387f9dfdSAndroid Build Coastguard Worker
498*387f9dfdSAndroid Build Coastguard Worker    schedule
499*387f9dfdSAndroid Build Coastguard Worker    schedule_timeout
500*387f9dfdSAndroid Build Coastguard Worker    xfs_buf_terminate
501*387f9dfdSAndroid Build Coastguard Worker    kthread
502*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
503*387f9dfdSAndroid Build Coastguard Worker    xfsaild/md0
504*387f9dfdSAndroid Build Coastguard Worker        8371514
505*387f9dfdSAndroid Build Coastguard Worker
506*387f9dfdSAndroid Build Coastguard Worker    schedule
507*387f9dfdSAndroid Build Coastguard Worker    rcu_nocb_kthread
508*387f9dfdSAndroid Build Coastguard Worker    kthread
509*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
510*387f9dfdSAndroid Build Coastguard Worker    rcuos/4
511*387f9dfdSAndroid Build Coastguard Worker        8384013
512*387f9dfdSAndroid Build Coastguard Worker
513*387f9dfdSAndroid Build Coastguard Worker    schedule
514*387f9dfdSAndroid Build Coastguard Worker    rcu_nocb_kthread
515*387f9dfdSAndroid Build Coastguard Worker    kthread
516*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
517*387f9dfdSAndroid Build Coastguard Worker    rcuos/5
518*387f9dfdSAndroid Build Coastguard Worker        8390016
519*387f9dfdSAndroid Build Coastguard Worker
520*387f9dfdSAndroid Build Coastguard Worker    schedule
521*387f9dfdSAndroid Build Coastguard Worker    rcu_nocb_kthread
522*387f9dfdSAndroid Build Coastguard Worker    kthread
523*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
524*387f9dfdSAndroid Build Coastguard Worker    ddebug_tables
525*387f9dfdSAndroid Build Coastguard Worker    rcuos/0
526*387f9dfdSAndroid Build Coastguard Worker        8405428
527*387f9dfdSAndroid Build Coastguard Worker
528*387f9dfdSAndroid Build Coastguard Worker    schedule
529*387f9dfdSAndroid Build Coastguard Worker    schedule_timeout
530*387f9dfdSAndroid Build Coastguard Worker    rcu_gp_kthread
531*387f9dfdSAndroid Build Coastguard Worker    kthread
532*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
533*387f9dfdSAndroid Build Coastguard Worker    ddebug_tables
534*387f9dfdSAndroid Build Coastguard Worker    rcu_sched
535*387f9dfdSAndroid Build Coastguard Worker        8406930
536*387f9dfdSAndroid Build Coastguard Worker
537*387f9dfdSAndroid Build Coastguard Worker    schedule
538*387f9dfdSAndroid Build Coastguard Worker    rcu_nocb_kthread
539*387f9dfdSAndroid Build Coastguard Worker    kthread
540*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
541*387f9dfdSAndroid Build Coastguard Worker    rcuos/7
542*387f9dfdSAndroid Build Coastguard Worker        8409575
543*387f9dfdSAndroid Build Coastguard Worker
544*387f9dfdSAndroid Build Coastguard Worker    schedule
545*387f9dfdSAndroid Build Coastguard Worker    rcu_nocb_kthread
546*387f9dfdSAndroid Build Coastguard Worker    kthread
547*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
548*387f9dfdSAndroid Build Coastguard Worker    rcuos/6
549*387f9dfdSAndroid Build Coastguard Worker        8415062
550*387f9dfdSAndroid Build Coastguard Worker
551*387f9dfdSAndroid Build Coastguard Worker    schedule
552*387f9dfdSAndroid Build Coastguard Worker    schedule_hrtimeout_range_clock
553*387f9dfdSAndroid Build Coastguard Worker    schedule_hrtimeout_range
554*387f9dfdSAndroid Build Coastguard Worker    poll_schedule_timeout
555*387f9dfdSAndroid Build Coastguard Worker    do_select
556*387f9dfdSAndroid Build Coastguard Worker    core_sys_select
557*387f9dfdSAndroid Build Coastguard Worker    sys_select
558*387f9dfdSAndroid Build Coastguard Worker    entry_SYSCALL_64_fastpath
559*387f9dfdSAndroid Build Coastguard Worker    offcputime
560*387f9dfdSAndroid Build Coastguard Worker        8421478
561*387f9dfdSAndroid Build Coastguard Worker
562*387f9dfdSAndroid Build Coastguard Worker    schedule
563*387f9dfdSAndroid Build Coastguard Worker    worker_thread
564*387f9dfdSAndroid Build Coastguard Worker    kthread
565*387f9dfdSAndroid Build Coastguard Worker    ret_from_fork
566*387f9dfdSAndroid Build Coastguard Worker    kworker/4:0
567*387f9dfdSAndroid Build Coastguard Worker        8421492
568*387f9dfdSAndroid Build Coastguard Worker
569*387f9dfdSAndroid Build Coastguard Worker    schedule
570*387f9dfdSAndroid Build Coastguard Worker    schedule_hrtimeout_range_clock
571*387f9dfdSAndroid Build Coastguard Worker    schedule_hrtimeout_range
572*387f9dfdSAndroid Build Coastguard Worker    poll_schedule_timeout
573*387f9dfdSAndroid Build Coastguard Worker    do_select
574*387f9dfdSAndroid Build Coastguard Worker    core_sys_select
575*387f9dfdSAndroid Build Coastguard Worker    sys_select
576*387f9dfdSAndroid Build Coastguard Worker    entry_SYSCALL_64_fastpath
577*387f9dfdSAndroid Build Coastguard Worker    sshd
578*387f9dfdSAndroid Build Coastguard Worker        14249005
579*387f9dfdSAndroid Build Coastguard Worker
580*387f9dfdSAndroid Build Coastguard Worker    schedule
581*387f9dfdSAndroid Build Coastguard Worker    schedule_hrtimeout_range_clock
582*387f9dfdSAndroid Build Coastguard Worker    schedule_hrtimeout_range
583*387f9dfdSAndroid Build Coastguard Worker    poll_schedule_timeout
584*387f9dfdSAndroid Build Coastguard Worker    do_sys_poll
585*387f9dfdSAndroid Build Coastguard Worker    sys_poll
586*387f9dfdSAndroid Build Coastguard Worker    entry_SYSCALL_64_fastpath
587*387f9dfdSAndroid Build Coastguard Worker    supervise
588*387f9dfdSAndroid Build Coastguard Worker        81670888
589*387f9dfdSAndroid Build Coastguard Worker
590*387f9dfdSAndroid Build Coastguard WorkerThe last few stack traces aren't very interesting, since they are threads that
591*387f9dfdSAndroid Build Coastguard Workerare often blocked off-CPU waiting for work.
592*387f9dfdSAndroid Build Coastguard Worker
593*387f9dfdSAndroid Build Coastguard WorkerDo be somewhat careful with overhead: this is tracing scheduler functions, which
594*387f9dfdSAndroid Build Coastguard Workercan be called very frequently. While this uses in-kernel summaries for
595*387f9dfdSAndroid Build Coastguard Workerefficiency, the rate of scheduler functions can be very high (> 1,000,000/sec),
596*387f9dfdSAndroid Build Coastguard Workerand this is performing stack walks when threads return to CPU. At some point
597*387f9dfdSAndroid Build Coastguard Workerthe overhead will be measurable.
598*387f9dfdSAndroid Build Coastguard Worker
599*387f9dfdSAndroid Build Coastguard Worker
600*387f9dfdSAndroid Build Coastguard WorkerA -p option can be used to filter (in-kernel) on a single process ID. For
601*387f9dfdSAndroid Build Coastguard Workerexample, only matching PID 26651, which is a running "dd" command:
602*387f9dfdSAndroid Build Coastguard Worker
603*387f9dfdSAndroid Build Coastguard Worker# ./offcputime -K -p 26651
604*387f9dfdSAndroid Build Coastguard WorkerTracing off-CPU time (us) of all threads by kernel stack... Hit Ctrl-C to end.
605*387f9dfdSAndroid Build Coastguard Worker^C
606*387f9dfdSAndroid Build Coastguard Worker    schedule
607*387f9dfdSAndroid Build Coastguard Worker    schedule_timeout
608*387f9dfdSAndroid Build Coastguard Worker    io_schedule_timeout
609*387f9dfdSAndroid Build Coastguard Worker    do_blockdev_direct_IO
610*387f9dfdSAndroid Build Coastguard Worker    __blockdev_direct_IO
611*387f9dfdSAndroid Build Coastguard Worker    blkdev_direct_IO
612*387f9dfdSAndroid Build Coastguard Worker    generic_file_read_iter
613*387f9dfdSAndroid Build Coastguard Worker    blkdev_read_iter
614*387f9dfdSAndroid Build Coastguard Worker    __vfs_read
615*387f9dfdSAndroid Build Coastguard Worker    vfs_read
616*387f9dfdSAndroid Build Coastguard Worker    sys_read
617*387f9dfdSAndroid Build Coastguard Worker    entry_SYSCALL_64_fastpath
618*387f9dfdSAndroid Build Coastguard Worker    dd
619*387f9dfdSAndroid Build Coastguard Worker        2405710
620*387f9dfdSAndroid Build Coastguard Worker
621*387f9dfdSAndroid Build Coastguard WorkerThe stack trace shows "dd" is blocked waiting on disk I/O, as expected, for a
622*387f9dfdSAndroid Build Coastguard Workertotal of 2.4 seconds during tracing.
623*387f9dfdSAndroid Build Coastguard Worker
624*387f9dfdSAndroid Build Coastguard Worker
625*387f9dfdSAndroid Build Coastguard WorkerA duration can be added, for example, tracing for 5 seconds only:
626*387f9dfdSAndroid Build Coastguard Worker
627*387f9dfdSAndroid Build Coastguard Worker# ./offcputime -K -p 26651 5
628*387f9dfdSAndroid Build Coastguard WorkerTracing off-CPU time (us) of all threads by kernel stack for 5 secs.
629*387f9dfdSAndroid Build Coastguard Worker
630*387f9dfdSAndroid Build Coastguard Worker    schedule
631*387f9dfdSAndroid Build Coastguard Worker    schedule_timeout
632*387f9dfdSAndroid Build Coastguard Worker    io_schedule_timeout
633*387f9dfdSAndroid Build Coastguard Worker    do_blockdev_direct_IO
634*387f9dfdSAndroid Build Coastguard Worker    __blockdev_direct_IO
635*387f9dfdSAndroid Build Coastguard Worker    blkdev_direct_IO
636*387f9dfdSAndroid Build Coastguard Worker    generic_file_read_iter
637*387f9dfdSAndroid Build Coastguard Worker    blkdev_read_iter
638*387f9dfdSAndroid Build Coastguard Worker    __vfs_read
639*387f9dfdSAndroid Build Coastguard Worker    vfs_read
640*387f9dfdSAndroid Build Coastguard Worker    sys_read
641*387f9dfdSAndroid Build Coastguard Worker    entry_SYSCALL_64_fastpath
642*387f9dfdSAndroid Build Coastguard Worker    dd
643*387f9dfdSAndroid Build Coastguard Worker        4413909
644*387f9dfdSAndroid Build Coastguard Worker
645*387f9dfdSAndroid Build Coastguard WorkerHere, dd was blocked for 4.4 seconds out of 5. Or put differently, likely
646*387f9dfdSAndroid Build Coastguard Workeron-CPU for about 12% of the time. Which matches the ratio seen by time(1):
647*387f9dfdSAndroid Build Coastguard Worker
648*387f9dfdSAndroid Build Coastguard Worker# time dd if=/dev/md0 iflag=direct of=/dev/null bs=1k
649*387f9dfdSAndroid Build Coastguard Worker^C108115+0 records in
650*387f9dfdSAndroid Build Coastguard Worker108114+0 records out
651*387f9dfdSAndroid Build Coastguard Worker110708736 bytes (111 MB) copied, 13.7565 s, 8.0 MB/s
652*387f9dfdSAndroid Build Coastguard Worker
653*387f9dfdSAndroid Build Coastguard Workerreal	0m13.760s
654*387f9dfdSAndroid Build Coastguard Workeruser	0m0.000s
655*387f9dfdSAndroid Build Coastguard Workersys	0m1.739s
656*387f9dfdSAndroid Build Coastguard Worker
657*387f9dfdSAndroid Build Coastguard Worker
658*387f9dfdSAndroid Build Coastguard WorkerA -f option will emit output using the "folded stacks" format, which can be
659*387f9dfdSAndroid Build Coastguard Workerread directly by flamegraph.pl from the FlameGraph open source software
660*387f9dfdSAndroid Build Coastguard Worker(https://github.com/brendangregg/FlameGraph). Eg:
661*387f9dfdSAndroid Build Coastguard Worker
662*387f9dfdSAndroid Build Coastguard Worker# ./offcputime -K -f 5
663*387f9dfdSAndroid Build Coastguard Workerbash;entry_SYSCALL_64_fastpath;sys_read;vfs_read;__vfs_read;tty_read;n_tty_read;call_rwsem_down_read_failed;rwsem_down_read_failed;schedule 8
664*387f9dfdSAndroid Build Coastguard Workeryes;entry_SYSCALL_64_fastpath;sys_write;vfs_write;__vfs_write;tty_write;n_tty_write;call_rwsem_down_read_failed;rwsem_down_read_failed;schedule 14
665*387f9dfdSAndroid Build Coastguard Workerrun;page_fault;do_page_fault;__do_page_fault;handle_mm_fault;__do_fault;filemap_fault;__lock_page_or_retry;wait_on_page_bit_killable;__wait_on_bit;bit_wait_io;io_schedule_timeout;schedule_timeout;schedule 33
666*387f9dfdSAndroid Build Coastguard Workerrcuos/4;ret_from_fork;kthread;rcu_nocb_kthread;schedule 45
667*387f9dfdSAndroid Build Coastguard Workerbash;entry_SYSCALL_64_fastpath;sys_read;vfs_read;__vfs_read;pipe_read;pipe_wait;schedule 88
668*387f9dfdSAndroid Build Coastguard Workerrun;page_fault;do_page_fault;__do_page_fault;handle_mm_fault;__do_fault;filemap_fault;__lock_page_or_retry;wait_on_page_bit_killable;__wait_on_bit;bit_wait_io;io_schedule_timeout;schedule_timeout;schedule 108
669*387f9dfdSAndroid Build Coastguard Workerjbd2/xvda1-8;mb_cache_list;ret_from_fork;kthread;kjournald2;jbd2_journal_commit_transaction;__wait_on_buffer;out_of_line_wait_on_bit;__wait_on_bit;bit_wait_io;io_schedule_timeout;schedule_timeout;schedule 828
670*387f9dfdSAndroid Build Coastguard Workerjbd2/xvda1-8;mb_cache_list;ret_from_fork;kthread;kjournald2;jbd2_journal_commit_transaction;__wait_on_buffer;out_of_line_wait_on_bit;__wait_on_bit;bit_wait_io;io_schedule_timeout;schedule_timeout;schedule 6201
671*387f9dfdSAndroid Build Coastguard Workersupervise;entry_SYSCALL_64_fastpath;sys_rename;dput;__dentry_kill;iput;evict;ext4_evict_inode;truncate_inode_pages_final;truncate_inode_pages_range;wait_on_page_bit;__wait_on_bit;bit_wait_io;io_schedule_timeout;schedule_timeout;schedule 41049
672*387f9dfdSAndroid Build Coastguard Workerrun;entry_SYSCALL_64_fastpath;sys_wait4;do_wait;schedule 120709
673*387f9dfdSAndroid Build Coastguard Workerbash;entry_SYSCALL_64_fastpath;sys_wait4;do_wait;schedule 699320
674*387f9dfdSAndroid Build Coastguard Workerksoftirqd/0;ret_from_fork;kthread;smpboot_thread_fn;schedule 1077529
675*387f9dfdSAndroid Build Coastguard Workerbash;entry_SYSCALL_64_fastpath;sys_read;vfs_read;__vfs_read;tty_read;n_tty_read;wait_woken;schedule_timeout;schedule 1362045
676*387f9dfdSAndroid Build Coastguard Workersshd;entry_SYSCALL_64_fastpath;sys_select;core_sys_select;do_select;poll_schedule_timeout;schedule_hrtimeout_range;schedule_hrtimeout_range_clock;schedule 1377627
677*387f9dfdSAndroid Build Coastguard Workermigration/0;ddebug_tables;ret_from_fork;kthread;smpboot_thread_fn;schedule 2040753
678*387f9dfdSAndroid Build Coastguard Workersnmpd;entry_SYSCALL_64_fastpath;sys_select;core_sys_select;do_select;poll_schedule_timeout;schedule_hrtimeout_range;schedule_hrtimeout_range_clock;schedule 2197568
679*387f9dfdSAndroid Build Coastguard Workermigration/5;ret_from_fork;kthread;smpboot_thread_fn;schedule 3079426
680*387f9dfdSAndroid Build Coastguard Workermigration/7;ret_from_fork;kthread;smpboot_thread_fn;schedule 3084746
681*387f9dfdSAndroid Build Coastguard Workerkworker/6:2;ret_from_fork;kthread;worker_thread;schedule 3940583
682*387f9dfdSAndroid Build Coastguard Workerkworker/5:1;ret_from_fork;kthread;worker_thread;schedule 3944892
683*387f9dfdSAndroid Build Coastguard Workerkworker/1:2;ret_from_fork;kthread;worker_thread;schedule 3999646
684*387f9dfdSAndroid Build Coastguard Workerntpd;entry_SYSCALL_64_fastpath;sys_select;core_sys_select;do_select;poll_schedule_timeout;schedule_hrtimeout_range;schedule_hrtimeout_range_clock;schedule 3999904
685*387f9dfdSAndroid Build Coastguard Workerkworker/u16:0;ret_from_fork;kthread;worker_thread;schedule 3999967
686*387f9dfdSAndroid Build Coastguard Workerkworker/7:0;ret_from_fork;kthread;worker_thread;schedule 3999987
687*387f9dfdSAndroid Build Coastguard Workertail;entry_SYSCALL_64_fastpath;sys_nanosleep;hrtimer_nanosleep;do_nanosleep;schedule 4000473
688*387f9dfdSAndroid Build Coastguard Workermigration/1;ret_from_fork;kthread;smpboot_thread_fn;schedule 4091150
689*387f9dfdSAndroid Build Coastguard Workermigration/4;ret_from_fork;kthread;smpboot_thread_fn;schedule 4095217
690*387f9dfdSAndroid Build Coastguard Workerreadproctitle;entry_SYSCALL_64_fastpath;sys_read;vfs_read;__vfs_read;pipe_read;pipe_wait;schedule 4108470
691*387f9dfdSAndroid Build Coastguard Workermigration/3;ret_from_fork;kthread;smpboot_thread_fn;schedule 4109264
692*387f9dfdSAndroid Build Coastguard Workermigration/2;ret_from_fork;kthread;smpboot_thread_fn;schedule 4109280
693*387f9dfdSAndroid Build Coastguard Workermigration/6;ret_from_fork;kthread;smpboot_thread_fn;schedule 4111143
694*387f9dfdSAndroid Build Coastguard Workerkworker/4:0;ret_from_fork;kthread;worker_thread;schedule 4402350
695*387f9dfdSAndroid Build Coastguard Workerkworker/3:0;ret_from_fork;kthread;worker_thread;schedule 4433988
696*387f9dfdSAndroid Build Coastguard Workerkworker/2:1;ret_from_fork;kthread;worker_thread;schedule 4636142
697*387f9dfdSAndroid Build Coastguard Workerkworker/0:2;ret_from_fork;kthread;worker_thread;schedule 4832023
698*387f9dfdSAndroid Build Coastguard Workerrcuos/1;ret_from_fork;kthread;rcu_nocb_kthread;schedule 4974186
699*387f9dfdSAndroid Build Coastguard Workerrcuos/5;ret_from_fork;kthread;rcu_nocb_kthread;schedule 4977137
700*387f9dfdSAndroid Build Coastguard Workerrcuos/6;ret_from_fork;kthread;rcu_nocb_kthread;schedule 4987769
701*387f9dfdSAndroid Build Coastguard Workerrcuos/3;ret_from_fork;kthread;rcu_nocb_kthread;schedule 4992282
702*387f9dfdSAndroid Build Coastguard Workerrcuos/4;ret_from_fork;kthread;rcu_nocb_kthread;schedule 4992364
703*387f9dfdSAndroid Build Coastguard Workerrcuos/2;ret_from_fork;kthread;rcu_nocb_kthread;schedule 4992714
704*387f9dfdSAndroid Build Coastguard Workerrcuos/0;ddebug_tables;ret_from_fork;kthread;rcu_nocb_kthread;schedule 4996504
705*387f9dfdSAndroid Build Coastguard Workerrcuos/7;ret_from_fork;kthread;rcu_nocb_kthread;schedule 4998497
706*387f9dfdSAndroid Build Coastguard Workerrcu_sched;ddebug_tables;ret_from_fork;kthread;rcu_gp_kthread;schedule_timeout;schedule 5000686
707*387f9dfdSAndroid Build Coastguard Workeroffcputime;entry_SYSCALL_64_fastpath;sys_select;core_sys_select;do_select;poll_schedule_timeout;schedule_hrtimeout_range;schedule_hrtimeout_range_clock;schedule 5005063
708*387f9dfdSAndroid Build Coastguard Workerdd;entry_SYSCALL_64_fastpath;sys_read;vfs_read;__vfs_read;blkdev_read_iter;generic_file_read_iter;blkdev_direct_IO;__blockdev_direct_IO;do_blockdev_direct_IO;io_schedule_timeout;schedule_timeout;schedule 8025599
709*387f9dfdSAndroid Build Coastguard Workersupervise;entry_SYSCALL_64_fastpath;sys_poll;do_sys_poll;poll_schedule_timeout;schedule_hrtimeout_range;schedule_hrtimeout_range_clock;schedule 40835611
710*387f9dfdSAndroid Build Coastguard Worker
711*387f9dfdSAndroid Build Coastguard WorkerThe stack traces are shown as single lines, with functions separated by
712*387f9dfdSAndroid Build Coastguard Workersemicolons. The first entry is the task name. The 2nd column is the total
713*387f9dfdSAndroid Build Coastguard Workeroff-CPU time.
714*387f9dfdSAndroid Build Coastguard Worker
715*387f9dfdSAndroid Build Coastguard WorkerI'd save this output to a file, then move it to the system where you'll be
716*387f9dfdSAndroid Build Coastguard Workercreating your "off-CPU time flame graphs".
717*387f9dfdSAndroid Build Coastguard Worker
718*387f9dfdSAndroid Build Coastguard Worker
719*387f9dfdSAndroid Build Coastguard WorkerUSAGE message:
720*387f9dfdSAndroid Build Coastguard Worker
721*387f9dfdSAndroid Build Coastguard Worker# ./offcputime.py -h
722*387f9dfdSAndroid Build Coastguard Workerusage: offcputime.py [-h] [-p PID | -t TID | -u | -k] [-U | -K] [-d] [-f] [-s]
723*387f9dfdSAndroid Build Coastguard Worker                     [--stack-storage-size STACK_STORAGE_SIZE]
724*387f9dfdSAndroid Build Coastguard Worker                     [-m MIN_BLOCK_TIME] [-M MAX_BLOCK_TIME] [--state STATE]
725*387f9dfdSAndroid Build Coastguard Worker                     [duration]
726*387f9dfdSAndroid Build Coastguard Worker
727*387f9dfdSAndroid Build Coastguard WorkerSummarize off-CPU time by stack trace
728*387f9dfdSAndroid Build Coastguard Worker
729*387f9dfdSAndroid Build Coastguard Workerpositional arguments:
730*387f9dfdSAndroid Build Coastguard Worker  duration              duration of trace, in seconds
731*387f9dfdSAndroid Build Coastguard Worker
732*387f9dfdSAndroid Build Coastguard Workeroptional arguments:
733*387f9dfdSAndroid Build Coastguard Worker  -h, --help            show this help message and exit
734*387f9dfdSAndroid Build Coastguard Worker  -p PID, --pid PID     trace this PID only
735*387f9dfdSAndroid Build Coastguard Worker  -t TID, --tid TID     trace this TID only
736*387f9dfdSAndroid Build Coastguard Worker  -u, --user-threads-only
737*387f9dfdSAndroid Build Coastguard Worker                        user threads only (no kernel threads)
738*387f9dfdSAndroid Build Coastguard Worker  -k, --kernel-threads-only
739*387f9dfdSAndroid Build Coastguard Worker                        kernel threads only (no user threads)
740*387f9dfdSAndroid Build Coastguard Worker  -U, --user-stacks-only
741*387f9dfdSAndroid Build Coastguard Worker                        show stacks from user space only (no kernel space
742*387f9dfdSAndroid Build Coastguard Worker                        stacks)
743*387f9dfdSAndroid Build Coastguard Worker  -K, --kernel-stacks-only
744*387f9dfdSAndroid Build Coastguard Worker                        show stacks from kernel space only (no user space
745*387f9dfdSAndroid Build Coastguard Worker                        stacks)
746*387f9dfdSAndroid Build Coastguard Worker  -d, --delimited       insert delimiter between kernel/user stacks
747*387f9dfdSAndroid Build Coastguard Worker  -f, --folded          output folded format
748*387f9dfdSAndroid Build Coastguard Worker  -s, --offset          show address offsets
749*387f9dfdSAndroid Build Coastguard Worker  --stack-storage-size STACK_STORAGE_SIZE
750*387f9dfdSAndroid Build Coastguard Worker                        the number of unique stack traces that can be stored
751*387f9dfdSAndroid Build Coastguard Worker                        and displayed (default 16384)
752*387f9dfdSAndroid Build Coastguard Worker  -m MIN_BLOCK_TIME, --min-block-time MIN_BLOCK_TIME
753*387f9dfdSAndroid Build Coastguard Worker                        the amount of time in microseconds over which we store
754*387f9dfdSAndroid Build Coastguard Worker                        traces (default 1)
755*387f9dfdSAndroid Build Coastguard Worker  -M MAX_BLOCK_TIME, --max-block-time MAX_BLOCK_TIME
756*387f9dfdSAndroid Build Coastguard Worker                        the amount of time in microseconds under which we
757*387f9dfdSAndroid Build Coastguard Worker                        store traces (default U64_MAX)
758*387f9dfdSAndroid Build Coastguard Worker  --state STATE         filter on this thread state bitmask (eg, 2 ==
759*387f9dfdSAndroid Build Coastguard Worker                        TASK_UNINTERRUPTIBLE) see include/linux/sched.h
760*387f9dfdSAndroid Build Coastguard Worker
761*387f9dfdSAndroid Build Coastguard Workerexamples:
762*387f9dfdSAndroid Build Coastguard Worker    ./offcputime             # trace off-CPU stack time until Ctrl-C
763*387f9dfdSAndroid Build Coastguard Worker    ./offcputime 5           # trace for 5 seconds only
764*387f9dfdSAndroid Build Coastguard Worker    ./offcputime -f 5        # 5 seconds, and output in folded format
765*387f9dfdSAndroid Build Coastguard Worker    ./offcputime -s 5        # 5 seconds, and show symbol offsets
766*387f9dfdSAndroid Build Coastguard Worker    ./offcputime -m 1000     # trace only events that last more than 1000 usec
767*387f9dfdSAndroid Build Coastguard Worker    ./offcputime -M 10000    # trace only events that last less than 10000 usec
768*387f9dfdSAndroid Build Coastguard Worker    ./offcputime -p 185      # only trace threads for PID 185
769*387f9dfdSAndroid Build Coastguard Worker    ./offcputime -t 188      # only trace thread 188
770*387f9dfdSAndroid Build Coastguard Worker    ./offcputime -u          # only trace user threads (no kernel)
771*387f9dfdSAndroid Build Coastguard Worker    ./offcputime -k          # only trace kernel threads (no user)
772*387f9dfdSAndroid Build Coastguard Worker    ./offcputime -U          # only show user space stacks (no kernel)
773*387f9dfdSAndroid Build Coastguard Worker    ./offcputime -K          # only show kernel space stacks (no user)
774