1*58e6ee5fSAndroid Build Coastguard WorkerTRACE-CMD-PROFILE(1) 2*58e6ee5fSAndroid Build Coastguard Worker==================== 3*58e6ee5fSAndroid Build Coastguard Worker 4*58e6ee5fSAndroid Build Coastguard WorkerNAME 5*58e6ee5fSAndroid Build Coastguard Worker---- 6*58e6ee5fSAndroid Build Coastguard Workertrace-cmd-profile - profile tasks running live 7*58e6ee5fSAndroid Build Coastguard Worker 8*58e6ee5fSAndroid Build Coastguard WorkerSYNOPSIS 9*58e6ee5fSAndroid Build Coastguard Worker-------- 10*58e6ee5fSAndroid Build Coastguard Worker*trace-cmd profile ['OPTIONS']* ['command'] 11*58e6ee5fSAndroid Build Coastguard Worker 12*58e6ee5fSAndroid Build Coastguard WorkerDESCRIPTION 13*58e6ee5fSAndroid Build Coastguard Worker----------- 14*58e6ee5fSAndroid Build Coastguard WorkerThe trace-cmd(1) profile will start tracing just like trace-cmd-record(1), 15*58e6ee5fSAndroid Build Coastguard Workerwith the *--profile* option, except that it does not write to a file, 16*58e6ee5fSAndroid Build Coastguard Workerbut instead, it will read the events as they happen and will update the accounting 17*58e6ee5fSAndroid Build Coastguard Workerof the events. When the trace is finished, it will report the results just like 18*58e6ee5fSAndroid Build Coastguard Workertrace-cmd-report(1) would do with its *--profile* option. In other words, 19*58e6ee5fSAndroid Build Coastguard Workerthe profile command does the work of trace-cmd record --profile, and trace-cmd 20*58e6ee5fSAndroid Build Coastguard Workerreport --profile without having to record the data to disk, in between. 21*58e6ee5fSAndroid Build Coastguard Worker 22*58e6ee5fSAndroid Build Coastguard WorkerThe advantage of using the profile command is that the profiling can be done 23*58e6ee5fSAndroid Build Coastguard Workerover a long period of time where recording all events would take up too much 24*58e6ee5fSAndroid Build Coastguard Workerdisk space. 25*58e6ee5fSAndroid Build Coastguard Worker 26*58e6ee5fSAndroid Build Coastguard WorkerThis will enable several events as well as the function graph tracer 27*58e6ee5fSAndroid Build Coastguard Workerwith a depth of one (if the kernel supports it). This is to show where 28*58e6ee5fSAndroid Build Coastguard Workertasks enter and exit the kernel and how long they were in the kernel. 29*58e6ee5fSAndroid Build Coastguard Worker 30*58e6ee5fSAndroid Build Coastguard WorkerTo disable calling function graph, use the *-p* option to enable another 31*58e6ee5fSAndroid Build Coastguard Workertracer. To not enable any tracer, use *-p nop*. 32*58e6ee5fSAndroid Build Coastguard Worker 33*58e6ee5fSAndroid Build Coastguard WorkerAll timings are currently in nanoseconds. 34*58e6ee5fSAndroid Build Coastguard Worker 35*58e6ee5fSAndroid Build Coastguard WorkerOPTIONS 36*58e6ee5fSAndroid Build Coastguard Worker------- 37*58e6ee5fSAndroid Build Coastguard WorkerThese are the same as trace-cmd-record(1) with the *--profile* option. 38*58e6ee5fSAndroid Build Coastguard Worker 39*58e6ee5fSAndroid Build Coastguard Worker*-p* 'tracer':: 40*58e6ee5fSAndroid Build Coastguard Worker Set a tracer plugin to run instead of function graph tracing set to 41*58e6ee5fSAndroid Build Coastguard Worker depth of 1. To not run any tracer, use *-p nop*. 42*58e6ee5fSAndroid Build Coastguard Worker 43*58e6ee5fSAndroid Build Coastguard Worker*-S*:: 44*58e6ee5fSAndroid Build Coastguard Worker Only enable the tracer or events speficied on the command line. 45*58e6ee5fSAndroid Build Coastguard Worker With this option, the function_graph tracer is not enabled, nor are 46*58e6ee5fSAndroid Build Coastguard Worker any events (like sched_switch), unless they are specifically specified 47*58e6ee5fSAndroid Build Coastguard Worker on the command line (i.e. -p function -e sched_switch -e sched_wakeup) 48*58e6ee5fSAndroid Build Coastguard Worker 49*58e6ee5fSAndroid Build Coastguard Worker*-G*:: 50*58e6ee5fSAndroid Build Coastguard Worker Set interrupt (soft and hard) events as global (associated to CPU 51*58e6ee5fSAndroid Build Coastguard Worker instead of tasks). 52*58e6ee5fSAndroid Build Coastguard Worker 53*58e6ee5fSAndroid Build Coastguard Worker*-o* 'file':: 54*58e6ee5fSAndroid Build Coastguard Worker Write the output of the profile to 'file'. This supersedes *--stderr* 55*58e6ee5fSAndroid Build Coastguard Worker 56*58e6ee5fSAndroid Build Coastguard Worker*-H* 'event-hooks':: 57*58e6ee5fSAndroid Build Coastguard Worker Add custom event matching to connect any two events together. Format is: 58*58e6ee5fSAndroid Build Coastguard Worker [<start_system>:]<start_event>,<start_match>[,<start_pid>]/ 59*58e6ee5fSAndroid Build Coastguard Worker [<end_system>:]<end_event>,<end_match>[,<flags>] 60*58e6ee5fSAndroid Build Coastguard Worker 61*58e6ee5fSAndroid Build Coastguard Worker The start_system:start_event (start_system is optional), is the event that 62*58e6ee5fSAndroid Build Coastguard Worker starts the timing. 63*58e6ee5fSAndroid Build Coastguard Worker 64*58e6ee5fSAndroid Build Coastguard Worker start_match is the field in the start event that is to match with the 65*58e6ee5fSAndroid Build Coastguard Worker end_match in the end event. 66*58e6ee5fSAndroid Build Coastguard Worker 67*58e6ee5fSAndroid Build Coastguard Worker start_pid is optional, as matches are attached to the tasks that run 68*58e6ee5fSAndroid Build Coastguard Worker the events, if another field should be used to find that task, then 69*58e6ee5fSAndroid Build Coastguard Worker it is specified with start_pid. 70*58e6ee5fSAndroid Build Coastguard Worker 71*58e6ee5fSAndroid Build Coastguard Worker end_system:end_event is the event that ends the timing (end_system is 72*58e6ee5fSAndroid Build Coastguard Worker optional). 73*58e6ee5fSAndroid Build Coastguard Worker 74*58e6ee5fSAndroid Build Coastguard Worker end_match is the field in end_match that wil match the start event field 75*58e6ee5fSAndroid Build Coastguard Worker start_match. 76*58e6ee5fSAndroid Build Coastguard Worker 77*58e6ee5fSAndroid Build Coastguard Worker flags are optional and can be the following (case insensitive): 78*58e6ee5fSAndroid Build Coastguard Worker 79*58e6ee5fSAndroid Build Coastguard Worker p : The two events are pinned to the same CPU (start and end happen 80*58e6ee5fSAndroid Build Coastguard Worker on the same CPU always). 81*58e6ee5fSAndroid Build Coastguard Worker 82*58e6ee5fSAndroid Build Coastguard Worker s : The event should have a stack traced with it (enable stack tracing 83*58e6ee5fSAndroid Build Coastguard Worker for the start event). 84*58e6ee5fSAndroid Build Coastguard Worker 85*58e6ee5fSAndroid Build Coastguard Worker g : The event is global (not associated to a task). start_pid is 86*58e6ee5fSAndroid Build Coastguard Worker not applicable with this flag. 87*58e6ee5fSAndroid Build Coastguard Worker 88*58e6ee5fSAndroid Build Coastguard Worker*--stderr*:: 89*58e6ee5fSAndroid Build Coastguard Worker Redirect the output to stderr. The output of the command being executed 90*58e6ee5fSAndroid Build Coastguard Worker is not changed. This allows watching the command execute and saving the 91*58e6ee5fSAndroid Build Coastguard Worker output of the profile to another file. 92*58e6ee5fSAndroid Build Coastguard Worker 93*58e6ee5fSAndroid Build Coastguard Worker*--verbose*[='level']:: 94*58e6ee5fSAndroid Build Coastguard Worker Set the log level. Supported log levels are "none", "critical", "error", "warning", 95*58e6ee5fSAndroid Build Coastguard Worker "info", "debug", "all" or their identifiers "0", "1", "2", "3", "4", "5", "6". Setting the log 96*58e6ee5fSAndroid Build Coastguard Worker level to specific value enables all logs from that and all previous levels. 97*58e6ee5fSAndroid Build Coastguard Worker The level will default to "info" if one is not specified. 98*58e6ee5fSAndroid Build Coastguard Worker 99*58e6ee5fSAndroid Build Coastguard Worker Example: enable all critical, error and warning logs 100*58e6ee5fSAndroid Build Coastguard Worker 101*58e6ee5fSAndroid Build Coastguard Worker trace-cmd profile --verbose=warning 102*58e6ee5fSAndroid Build Coastguard Worker 103*58e6ee5fSAndroid Build Coastguard WorkerEXAMPLES 104*58e6ee5fSAndroid Build Coastguard Worker-------- 105*58e6ee5fSAndroid Build Coastguard Worker 106*58e6ee5fSAndroid Build Coastguard Worker --- 107*58e6ee5fSAndroid Build Coastguard Worker# trace-cmd profile -F sleep 1 108*58e6ee5fSAndroid Build Coastguard Worker [..] 109*58e6ee5fSAndroid Build Coastguard Workertask: sleep-1121 110*58e6ee5fSAndroid Build Coastguard Worker Event: sched_switch:R (2) Total: 234559 Avg: 117279 Max: 129886 Min:104673 111*58e6ee5fSAndroid Build Coastguard Worker | 112*58e6ee5fSAndroid Build Coastguard Worker + ftrace_raw_event_sched_switch (0xffffffff8109f310) 113*58e6ee5fSAndroid Build Coastguard Worker 100% (2) time:234559 max:129886 min:104673 avg:117279 114*58e6ee5fSAndroid Build Coastguard Worker __schedule (0xffffffff816c1e81) 115*58e6ee5fSAndroid Build Coastguard Worker preempt_schedule (0xffffffff816c236e) 116*58e6ee5fSAndroid Build Coastguard Worker ___preempt_schedule (0xffffffff81351a59) 117*58e6ee5fSAndroid Build Coastguard Worker | 118*58e6ee5fSAndroid Build Coastguard Worker + unmap_single_vma (0xffffffff81198c05) 119*58e6ee5fSAndroid Build Coastguard Worker | 55% (1) time:129886 max:129886 min:0 avg:129886 120*58e6ee5fSAndroid Build Coastguard Worker | stop_one_cpu (0xffffffff8110909a) 121*58e6ee5fSAndroid Build Coastguard Worker | sched_exec (0xffffffff810a119b) 122*58e6ee5fSAndroid Build Coastguard Worker | do_execveat_common.isra.31 (0xffffffff811de528) 123*58e6ee5fSAndroid Build Coastguard Worker | do_execve (0xffffffff811dea8c) 124*58e6ee5fSAndroid Build Coastguard Worker | SyS_execve (0xffffffff811ded1e) 125*58e6ee5fSAndroid Build Coastguard Worker | return_to_handler (0xffffffff816c8458) 126*58e6ee5fSAndroid Build Coastguard Worker | stub_execve (0xffffffff816c6929) 127*58e6ee5fSAndroid Build Coastguard Worker | 128*58e6ee5fSAndroid Build Coastguard Worker + unmap_single_vma (0xffffffff81198c05) 129*58e6ee5fSAndroid Build Coastguard Worker 45% (1) time:104673 max:104673 min:0 avg:104673 130*58e6ee5fSAndroid Build Coastguard Worker unmap_vmas (0xffffffff81199174) 131*58e6ee5fSAndroid Build Coastguard Worker exit_mmap (0xffffffff811a1f5b) 132*58e6ee5fSAndroid Build Coastguard Worker mmput (0xffffffff8107699a) 133*58e6ee5fSAndroid Build Coastguard Worker flush_old_exec (0xffffffff811ddb75) 134*58e6ee5fSAndroid Build Coastguard Worker load_elf_binary (0xffffffff812287df) 135*58e6ee5fSAndroid Build Coastguard Worker search_binary_handler (0xffffffff811dd3e0) 136*58e6ee5fSAndroid Build Coastguard Worker do_execveat_common.isra.31 (0xffffffff811de8bd) 137*58e6ee5fSAndroid Build Coastguard Worker do_execve (0xffffffff811dea8c) 138*58e6ee5fSAndroid Build Coastguard Worker SyS_execve (0xffffffff811ded1e) 139*58e6ee5fSAndroid Build Coastguard Worker return_to_handler (0xffffffff816c8458) 140*58e6ee5fSAndroid Build Coastguard Worker stub_execve (0xffffffff816c6929) 141*58e6ee5fSAndroid Build Coastguard Worker 142*58e6ee5fSAndroid Build Coastguard Worker 143*58e6ee5fSAndroid Build Coastguard Worker 144*58e6ee5fSAndroid Build Coastguard Worker 145*58e6ee5fSAndroid Build Coastguard Worker Event: sched_switch:S (1) Total: 1000513242 Avg: 1000513242 Max: 1000513242 Min:1000513242 146*58e6ee5fSAndroid Build Coastguard Worker | 147*58e6ee5fSAndroid Build Coastguard Worker + ftrace_raw_event_sched_switch (0xffffffff8109f310) 148*58e6ee5fSAndroid Build Coastguard Worker 100% (1) time:1000513242 max:1000513242 min:0 avg:1000513242 149*58e6ee5fSAndroid Build Coastguard Worker __schedule (0xffffffff816c1e81) 150*58e6ee5fSAndroid Build Coastguard Worker schedule (0xffffffff816c23b9) 151*58e6ee5fSAndroid Build Coastguard Worker do_nanosleep (0xffffffff816c4f1c) 152*58e6ee5fSAndroid Build Coastguard Worker hrtimer_nanosleep (0xffffffff810dcd86) 153*58e6ee5fSAndroid Build Coastguard Worker SyS_nanosleep (0xffffffff810dcea6) 154*58e6ee5fSAndroid Build Coastguard Worker return_to_handler (0xffffffff816c8458) 155*58e6ee5fSAndroid Build Coastguard Worker tracesys_phase2 (0xffffffff816c65b0) 156*58e6ee5fSAndroid Build Coastguard Worker 157*58e6ee5fSAndroid Build Coastguard Worker 158*58e6ee5fSAndroid Build Coastguard Worker 159*58e6ee5fSAndroid Build Coastguard Worker Event: sched_wakeup:1121 (1) Total: 43405 Avg: 43405 Max: 43405 Min:43405 160*58e6ee5fSAndroid Build Coastguard Worker | 161*58e6ee5fSAndroid Build Coastguard Worker + ftrace_raw_event_sched_wakeup_template (0xffffffff8109d960) 162*58e6ee5fSAndroid Build Coastguard Worker 100% (1) time:43405 max:43405 min:0 avg:43405 163*58e6ee5fSAndroid Build Coastguard Worker ttwu_do_wakeup (0xffffffff810a01a2) 164*58e6ee5fSAndroid Build Coastguard Worker ttwu_do_activate.constprop.122 (0xffffffff810a0236) 165*58e6ee5fSAndroid Build Coastguard Worker try_to_wake_up (0xffffffff810a3ec3) 166*58e6ee5fSAndroid Build Coastguard Worker wake_up_process (0xffffffff810a4057) 167*58e6ee5fSAndroid Build Coastguard Worker hrtimer_wakeup (0xffffffff810db772) 168*58e6ee5fSAndroid Build Coastguard Worker __run_hrtimer (0xffffffff810dbd91) 169*58e6ee5fSAndroid Build Coastguard Worker hrtimer_interrupt (0xffffffff810dc6b7) 170*58e6ee5fSAndroid Build Coastguard Worker local_apic_timer_interrupt (0xffffffff810363e7) 171*58e6ee5fSAndroid Build Coastguard Worker smp_trace_apic_timer_interrupt (0xffffffff816c8c6a) 172*58e6ee5fSAndroid Build Coastguard Worker trace_apic_timer_interrupt (0xffffffff816c725a) 173*58e6ee5fSAndroid Build Coastguard Worker finish_task_switch (0xffffffff8109c3a4) 174*58e6ee5fSAndroid Build Coastguard Worker __schedule (0xffffffff816c1e01) 175*58e6ee5fSAndroid Build Coastguard Worker schedule (0xffffffff816c23b9) 176*58e6ee5fSAndroid Build Coastguard Worker ring_buffer_wait (0xffffffff811323a3) 177*58e6ee5fSAndroid Build Coastguard Worker wait_on_pipe (0xffffffff81133d93) 178*58e6ee5fSAndroid Build Coastguard Worker tracing_buffers_splice_read (0xffffffff811350b0) 179*58e6ee5fSAndroid Build Coastguard Worker do_splice_to (0xffffffff8120476f) 180*58e6ee5fSAndroid Build Coastguard Worker SyS_splice (0xffffffff81206c1f) 181*58e6ee5fSAndroid Build Coastguard Worker tracesys_phase2 (0xffffffff816c65b0) 182*58e6ee5fSAndroid Build Coastguard Worker 183*58e6ee5fSAndroid Build Coastguard Worker 184*58e6ee5fSAndroid Build Coastguard Worker Event: func: sys_nanosleep() (1) Total: 1000598016 Avg: 1000598016 Max: 1000598016 Min:1000598016 185*58e6ee5fSAndroid Build Coastguard Worker Event: func: sys_munmap() (1) Total: 14300 Avg: 14300 Max: 14300 Min:14300 186*58e6ee5fSAndroid Build Coastguard Worker Event: func: sys_arch_prctl() (1) Total: 571 Avg: 571 Max: 571 Min:571 187*58e6ee5fSAndroid Build Coastguard Worker Event: func: sys_mprotect() (4) Total: 14382 Avg: 3595 Max: 7196 Min:2190 188*58e6ee5fSAndroid Build Coastguard Worker Event: func: SyS_read() (1) Total: 2640 Avg: 2640 Max: 2640 Min:2640 189*58e6ee5fSAndroid Build Coastguard Worker Event: func: sys_close() (5) Total: 4001 Avg: 800 Max: 1252 Min:414 190*58e6ee5fSAndroid Build Coastguard Worker Event: func: sys_newfstat() (3) Total: 11684 Avg: 3894 Max: 10206 Min:636 191*58e6ee5fSAndroid Build Coastguard Worker Event: func: SyS_open() (3) Total: 23615 Avg: 7871 Max: 10535 Min:4743 192*58e6ee5fSAndroid Build Coastguard Worker Event: func: sys_access() (1) Total: 5924 Avg: 5924 Max: 5924 Min:5924 193*58e6ee5fSAndroid Build Coastguard Worker Event: func: SyS_mmap() (8) Total: 39153 Avg: 4894 Max: 12354 Min:1518 194*58e6ee5fSAndroid Build Coastguard Worker Event: func: smp_trace_apic_timer_interrupt() (1) Total: 10298 Avg: 10298 Max: 10298 Min:10298 195*58e6ee5fSAndroid Build Coastguard Worker Event: func: SyS_brk() (4) Total: 2407 Avg: 601 Max: 1564 Min:206 196*58e6ee5fSAndroid Build Coastguard Worker Event: func: do_notify_resume() (2) Total: 4095 Avg: 2047 Max: 2521 Min:1574 197*58e6ee5fSAndroid Build Coastguard Worker Event: func: sys_execve() (5) Total: 1625251 Avg: 325050 Max: 1605698 Min:3570 198*58e6ee5fSAndroid Build Coastguard Worker | 199*58e6ee5fSAndroid Build Coastguard Worker + ftrace_raw_event_sched_wakeup_template (0xffffffff8109d960) 200*58e6ee5fSAndroid Build Coastguard Worker 100% (1) time:1605698 max:1605698 min:0 avg:1605698 201*58e6ee5fSAndroid Build Coastguard Worker ttwu_do_wakeup (0xffffffff810a01a2) 202*58e6ee5fSAndroid Build Coastguard Worker ttwu_do_activate.constprop.122 (0xffffffff810a0236) 203*58e6ee5fSAndroid Build Coastguard Worker try_to_wake_up (0xffffffff810a3ec3) 204*58e6ee5fSAndroid Build Coastguard Worker wake_up_process (0xffffffff810a4057) 205*58e6ee5fSAndroid Build Coastguard Worker cpu_stop_queue_work (0xffffffff81108df8) 206*58e6ee5fSAndroid Build Coastguard Worker stop_one_cpu (0xffffffff8110909a) 207*58e6ee5fSAndroid Build Coastguard Worker sched_exec (0xffffffff810a119b) 208*58e6ee5fSAndroid Build Coastguard Worker do_execveat_common.isra.31 (0xffffffff811de528) 209*58e6ee5fSAndroid Build Coastguard Worker do_execve (0xffffffff811dea8c) 210*58e6ee5fSAndroid Build Coastguard Worker SyS_execve (0xffffffff811ded1e) 211*58e6ee5fSAndroid Build Coastguard Worker return_to_handler (0xffffffff816c8458) 212*58e6ee5fSAndroid Build Coastguard Worker stub_execve (0xffffffff816c6929) 213*58e6ee5fSAndroid Build Coastguard Worker stub_execve (0xffffffff816c6929) 214*58e6ee5fSAndroid Build Coastguard Worker 215*58e6ee5fSAndroid Build Coastguard Worker 216*58e6ee5fSAndroid Build Coastguard Worker Event: func: syscall_trace_enter_phase2() (38) Total: 21544 Avg: 566 Max: 1066 Min:329 217*58e6ee5fSAndroid Build Coastguard Worker Event: func: syscall_trace_enter_phase1() (38) Total: 9202 Avg: 242 Max: 376 Min:150 218*58e6ee5fSAndroid Build Coastguard Worker Event: func: __do_page_fault() (53) Total: 257672 Avg: 4861 Max: 27745 Min:458 219*58e6ee5fSAndroid Build Coastguard Worker | 220*58e6ee5fSAndroid Build Coastguard Worker + ftrace_raw_event_sched_wakeup_template (0xffffffff8109d960) 221*58e6ee5fSAndroid Build Coastguard Worker 100% (1) time:27745 max:27745 min:0 avg:27745 222*58e6ee5fSAndroid Build Coastguard Worker ttwu_do_wakeup (0xffffffff810a01a2) 223*58e6ee5fSAndroid Build Coastguard Worker ttwu_do_activate.constprop.122 (0xffffffff810a0236) 224*58e6ee5fSAndroid Build Coastguard Worker try_to_wake_up (0xffffffff810a3ec3) 225*58e6ee5fSAndroid Build Coastguard Worker default_wake_function (0xffffffff810a4002) 226*58e6ee5fSAndroid Build Coastguard Worker autoremove_wake_function (0xffffffff810b50fd) 227*58e6ee5fSAndroid Build Coastguard Worker __wake_up_common (0xffffffff810b4958) 228*58e6ee5fSAndroid Build Coastguard Worker __wake_up (0xffffffff810b4cb8) 229*58e6ee5fSAndroid Build Coastguard Worker rb_wake_up_waiters (0xffffffff8112f126) 230*58e6ee5fSAndroid Build Coastguard Worker irq_work_run_list (0xffffffff81157d0f) 231*58e6ee5fSAndroid Build Coastguard Worker irq_work_run (0xffffffff81157d5e) 232*58e6ee5fSAndroid Build Coastguard Worker smp_trace_irq_work_interrupt (0xffffffff810082fc) 233*58e6ee5fSAndroid Build Coastguard Worker trace_irq_work_interrupt (0xffffffff816c7aaa) 234*58e6ee5fSAndroid Build Coastguard Worker return_to_handler (0xffffffff816c8458) 235*58e6ee5fSAndroid Build Coastguard Worker trace_do_page_fault (0xffffffff810478b2) 236*58e6ee5fSAndroid Build Coastguard Worker trace_page_fault (0xffffffff816c7dd2) 237*58e6ee5fSAndroid Build Coastguard Worker 238*58e6ee5fSAndroid Build Coastguard Worker 239*58e6ee5fSAndroid Build Coastguard Worker Event: func: syscall_trace_leave() (38) Total: 26145 Avg: 688 Max: 1264 Min:381 240*58e6ee5fSAndroid Build Coastguard Worker Event: func: __sb_end_write() (1) Total: 373 Avg: 373 Max: 373 Min:373 241*58e6ee5fSAndroid Build Coastguard Worker Event: func: fsnotify() (1) Total: 598 Avg: 598 Max: 598 Min:598 242*58e6ee5fSAndroid Build Coastguard Worker Event: func: __fsnotify_parent() (1) Total: 286 Avg: 286 Max: 286 Min:286 243*58e6ee5fSAndroid Build Coastguard Worker Event: func: mutex_unlock() (2) Total: 39636 Avg: 19818 Max: 39413 Min:223 244*58e6ee5fSAndroid Build Coastguard Worker Event: func: smp_trace_irq_work_interrupt() (6) Total: 236459 Avg: 39409 Max: 100671 Min:634 245*58e6ee5fSAndroid Build Coastguard Worker | 246*58e6ee5fSAndroid Build Coastguard Worker + ftrace_raw_event_sched_wakeup_template (0xffffffff8109d960) 247*58e6ee5fSAndroid Build Coastguard Worker 100% (4) time:234348 max:100671 min:38745 avg:58587 248*58e6ee5fSAndroid Build Coastguard Worker ttwu_do_wakeup (0xffffffff810a01a2) 249*58e6ee5fSAndroid Build Coastguard Worker ttwu_do_activate.constprop.122 (0xffffffff810a0236) 250*58e6ee5fSAndroid Build Coastguard Worker try_to_wake_up (0xffffffff810a3ec3) 251*58e6ee5fSAndroid Build Coastguard Worker default_wake_function (0xffffffff810a4002) 252*58e6ee5fSAndroid Build Coastguard Worker autoremove_wake_function (0xffffffff810b50fd) 253*58e6ee5fSAndroid Build Coastguard Worker __wake_up_common (0xffffffff810b4958) 254*58e6ee5fSAndroid Build Coastguard Worker __wake_up (0xffffffff810b4cb8) 255*58e6ee5fSAndroid Build Coastguard Worker rb_wake_up_waiters (0xffffffff8112f126) 256*58e6ee5fSAndroid Build Coastguard Worker irq_work_run_list (0xffffffff81157d0f) 257*58e6ee5fSAndroid Build Coastguard Worker irq_work_run (0xffffffff81157d5e) 258*58e6ee5fSAndroid Build Coastguard Worker smp_trace_irq_work_interrupt (0xffffffff810082fc) 259*58e6ee5fSAndroid Build Coastguard Worker return_to_handler (0xffffffff816c8458) 260*58e6ee5fSAndroid Build Coastguard Worker trace_irq_work_interrupt (0xffffffff816c7aaa) 261*58e6ee5fSAndroid Build Coastguard Worker | 262*58e6ee5fSAndroid Build Coastguard Worker + ftrace_return_to_handler (0xffffffff81140840) 263*58e6ee5fSAndroid Build Coastguard Worker | 84% (3) time:197396 max:100671 min:38745 avg:65798 264*58e6ee5fSAndroid Build Coastguard Worker | return_to_handler (0xffffffff816c846d) 265*58e6ee5fSAndroid Build Coastguard Worker | trace_page_fault (0xffffffff816c7dd2) 266*58e6ee5fSAndroid Build Coastguard Worker | 267*58e6ee5fSAndroid Build Coastguard Worker + ftrace_return_to_handler (0xffffffff81140840) 268*58e6ee5fSAndroid Build Coastguard Worker 16% (1) time:36952 max:36952 min:0 avg:36952 269*58e6ee5fSAndroid Build Coastguard Worker ftrace_graph_caller (0xffffffff816c8428) 270*58e6ee5fSAndroid Build Coastguard Worker mutex_unlock (0xffffffff816c3f75) 271*58e6ee5fSAndroid Build Coastguard Worker rb_simple_write (0xffffffff81133142) 272*58e6ee5fSAndroid Build Coastguard Worker vfs_write (0xffffffff811d7727) 273*58e6ee5fSAndroid Build Coastguard Worker SyS_write (0xffffffff811d7acf) 274*58e6ee5fSAndroid Build Coastguard Worker tracesys_phase2 (0xffffffff816c65b0) 275*58e6ee5fSAndroid Build Coastguard Worker 276*58e6ee5fSAndroid Build Coastguard Worker 277*58e6ee5fSAndroid Build Coastguard Worker 278*58e6ee5fSAndroid Build Coastguard Worker 279*58e6ee5fSAndroid Build Coastguard Worker Event: sys_enter:35 (1) Total: 1000599765 Avg: 1000599765 Max: 1000599765 Min:1000599765 280*58e6ee5fSAndroid Build Coastguard Worker Event: sys_enter:11 (1) Total: 55025 Avg: 55025 Max: 55025 Min:55025 281*58e6ee5fSAndroid Build Coastguard Worker Event: sys_enter:158 (1) Total: 1584 Avg: 1584 Max: 1584 Min:1584 282*58e6ee5fSAndroid Build Coastguard Worker Event: sys_enter:10 (4) Total: 18359 Avg: 4589 Max: 8764 Min:2933 283*58e6ee5fSAndroid Build Coastguard Worker Event: sys_enter:0 (1) Total: 4223 Avg: 4223 Max: 4223 Min:4223 284*58e6ee5fSAndroid Build Coastguard Worker Event: sys_enter:3 (5) Total: 9948 Avg: 1989 Max: 2606 Min:1203 285*58e6ee5fSAndroid Build Coastguard Worker Event: sys_enter:5 (3) Total: 15530 Avg: 5176 Max: 11840 Min:1405 286*58e6ee5fSAndroid Build Coastguard Worker Event: sys_enter:2 (3) Total: 28002 Avg: 9334 Max: 12035 Min:5656 287*58e6ee5fSAndroid Build Coastguard Worker Event: sys_enter:21 (1) Total: 7814 Avg: 7814 Max: 7814 Min:7814 288*58e6ee5fSAndroid Build Coastguard Worker Event: sys_enter:9 (8) Total: 49583 Avg: 6197 Max: 14137 Min:2362 289*58e6ee5fSAndroid Build Coastguard Worker Event: sys_enter:12 (4) Total: 108493 Avg: 27123 Max: 104079 Min:922 290*58e6ee5fSAndroid Build Coastguard Worker Event: sys_enter:59 (5) Total: 1631608 Avg: 326321 Max: 1607529 Min:4563 291*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398d86b630 (1) 292*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398d844de0 (1) 293*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398d8d9020 (1) 294*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x1d37008 (1) 295*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x7f0b89e91074 (1) 296*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x7f0b89d98ed0 (1) 297*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x7f0b89ec8950 (1) 298*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x7f0b89d83644 (1) 299*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x7f0b89d622a8 (1) 300*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x7f0b89d5a560 (1) 301*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x7f0b89d34010 (1) 302*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x1d36008 (1) 303*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398d900510 (1) 304*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398dbb3ae8 (1) 305*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398d87f490 (1) 306*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398d8eb660 (1) 307*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398d8bd730 (1) 308*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398d9625d9 (1) 309*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398d931810 (1) 310*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398dbb7114 (1) 311*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398d837610 (1) 312*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398d89e860 (1) 313*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398d8f23b0 (1) 314*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398dbb4510 (1) 315*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398dbad6f0 (1) 316*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398dbb1018 (1) 317*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398d977b37 (1) 318*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398d92eb60 (1) 319*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398d8abff0 (1) 320*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398dbb0d30 (1) 321*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398dbb6c24 (1) 322*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398d821c50 (1) 323*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398dbb6c20 (1) 324*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398d886350 (1) 325*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x7f0b90125000 (1) 326*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x7f0b90124740 (1) 327*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x7f0b90126000 (1) 328*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398d816230 (1) 329*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398d8002b8 (1) 330*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398dbb0b40 (1) 331*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398dbb2880 (1) 332*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x7f0b90141cc6 (1) 333*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x7f0b9013b85c (1) 334*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x7f0b90127000 (1) 335*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x606e70 (1) 336*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x7f0b90144010 (1) 337*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x7fffcb31b038 (1) 338*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x606da8 (1) 339*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x400040 (1) 340*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398d222218 (1) 341*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398d015120 (1) 342*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398d220ce8 (1) 343*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398d220b80 (1) 344*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x7fffcb2fcff8 (1) 345*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398d001590 (1) 346*58e6ee5fSAndroid Build Coastguard Worker Event: page_fault_user:0x398d838490 (1) 347*58e6ee5fSAndroid Build Coastguard Worker Event: softirq_raise:RCU (3) Total: 252931 Avg: 84310 Max: 243288 Min:4639 348*58e6ee5fSAndroid Build Coastguard Worker Event: softirq_raise:SCHED (2) Total: 241249 Avg: 120624 Max: 239076 Min:2173 349*58e6ee5fSAndroid Build Coastguard Worker | 350*58e6ee5fSAndroid Build Coastguard Worker + ftrace_raw_event_sched_wakeup_template (0xffffffff8109d960) 351*58e6ee5fSAndroid Build Coastguard Worker 100% (1) time:239076 max:239076 min:0 avg:239076 352*58e6ee5fSAndroid Build Coastguard Worker ttwu_do_wakeup (0xffffffff810a01a2) 353*58e6ee5fSAndroid Build Coastguard Worker ttwu_do_activate.constprop.122 (0xffffffff810a0236) 354*58e6ee5fSAndroid Build Coastguard Worker try_to_wake_up (0xffffffff810a3ec3) 355*58e6ee5fSAndroid Build Coastguard Worker default_wake_function (0xffffffff810a4002) 356*58e6ee5fSAndroid Build Coastguard Worker autoremove_wake_function (0xffffffff810b50fd) 357*58e6ee5fSAndroid Build Coastguard Worker __wake_up_common (0xffffffff810b4958) 358*58e6ee5fSAndroid Build Coastguard Worker __wake_up (0xffffffff810b4cb8) 359*58e6ee5fSAndroid Build Coastguard Worker rb_wake_up_waiters (0xffffffff8112f126) 360*58e6ee5fSAndroid Build Coastguard Worker irq_work_run_list (0xffffffff81157d0f) 361*58e6ee5fSAndroid Build Coastguard Worker irq_work_run (0xffffffff81157d5e) 362*58e6ee5fSAndroid Build Coastguard Worker smp_trace_irq_work_interrupt (0xffffffff810082fc) 363*58e6ee5fSAndroid Build Coastguard Worker trace_irq_work_interrupt (0xffffffff816c7aaa) 364*58e6ee5fSAndroid Build Coastguard Worker irq_exit (0xffffffff8107dd66) 365*58e6ee5fSAndroid Build Coastguard Worker smp_trace_apic_timer_interrupt (0xffffffff816c8c7a) 366*58e6ee5fSAndroid Build Coastguard Worker trace_apic_timer_interrupt (0xffffffff816c725a) 367*58e6ee5fSAndroid Build Coastguard Worker prepare_ftrace_return (0xffffffff8103d4fd) 368*58e6ee5fSAndroid Build Coastguard Worker ftrace_graph_caller (0xffffffff816c8428) 369*58e6ee5fSAndroid Build Coastguard Worker mem_cgroup_begin_page_stat (0xffffffff811cfd25) 370*58e6ee5fSAndroid Build Coastguard Worker page_remove_rmap (0xffffffff811a4fc5) 371*58e6ee5fSAndroid Build Coastguard Worker stub_execve (0xffffffff816c6929) 372*58e6ee5fSAndroid Build Coastguard Worker unmap_single_vma (0xffffffff81198b1c) 373*58e6ee5fSAndroid Build Coastguard Worker unmap_vmas (0xffffffff81199174) 374*58e6ee5fSAndroid Build Coastguard Worker exit_mmap (0xffffffff811a1f5b) 375*58e6ee5fSAndroid Build Coastguard Worker mmput (0xffffffff8107699a) 376*58e6ee5fSAndroid Build Coastguard Worker flush_old_exec (0xffffffff811ddb75) 377*58e6ee5fSAndroid Build Coastguard Worker load_elf_binary (0xffffffff812287df) 378*58e6ee5fSAndroid Build Coastguard Worker search_binary_handler (0xffffffff811dd3e0) 379*58e6ee5fSAndroid Build Coastguard Worker do_execveat_common.isra.31 (0xffffffff811de8bd) 380*58e6ee5fSAndroid Build Coastguard Worker do_execve (0xffffffff811dea8c) 381*58e6ee5fSAndroid Build Coastguard Worker SyS_execve (0xffffffff811ded1e) 382*58e6ee5fSAndroid Build Coastguard Worker return_to_handler (0xffffffff816c8458) 383*58e6ee5fSAndroid Build Coastguard Worker 384*58e6ee5fSAndroid Build Coastguard Worker 385*58e6ee5fSAndroid Build Coastguard Worker Event: softirq_raise:HI (3) Total: 72472 Avg: 24157 Max: 64186 Min:3430 386*58e6ee5fSAndroid Build Coastguard Worker Event: softirq_entry:RCU (2) Total: 3191 Avg: 1595 Max: 1788 Min:1403 387*58e6ee5fSAndroid Build Coastguard Worker | 388*58e6ee5fSAndroid Build Coastguard Worker + ftrace_raw_event_sched_wakeup_template (0xffffffff8109d960) 389*58e6ee5fSAndroid Build Coastguard Worker 100% (1) time:1788 max:1788 min:0 avg:1788 390*58e6ee5fSAndroid Build Coastguard Worker ttwu_do_wakeup (0xffffffff810a01a2) 391*58e6ee5fSAndroid Build Coastguard Worker ttwu_do_activate.constprop.122 (0xffffffff810a0236) 392*58e6ee5fSAndroid Build Coastguard Worker try_to_wake_up (0xffffffff810a3ec3) 393*58e6ee5fSAndroid Build Coastguard Worker default_wake_function (0xffffffff810a4002) 394*58e6ee5fSAndroid Build Coastguard Worker autoremove_wake_function (0xffffffff810b50fd) 395*58e6ee5fSAndroid Build Coastguard Worker __wake_up_common (0xffffffff810b4958) 396*58e6ee5fSAndroid Build Coastguard Worker __wake_up (0xffffffff810b4cb8) 397*58e6ee5fSAndroid Build Coastguard Worker rb_wake_up_waiters (0xffffffff8112f126) 398*58e6ee5fSAndroid Build Coastguard Worker irq_work_run_list (0xffffffff81157d0f) 399*58e6ee5fSAndroid Build Coastguard Worker irq_work_run (0xffffffff81157d5e) 400*58e6ee5fSAndroid Build Coastguard Worker smp_trace_irq_work_interrupt (0xffffffff810082fc) 401*58e6ee5fSAndroid Build Coastguard Worker trace_irq_work_interrupt (0xffffffff816c7aaa) 402*58e6ee5fSAndroid Build Coastguard Worker irq_work_queue (0xffffffff81157e95) 403*58e6ee5fSAndroid Build Coastguard Worker ring_buffer_unlock_commit (0xffffffff8113039f) 404*58e6ee5fSAndroid Build Coastguard Worker __buffer_unlock_commit (0xffffffff811367d5) 405*58e6ee5fSAndroid Build Coastguard Worker trace_buffer_unlock_commit (0xffffffff811376a2) 406*58e6ee5fSAndroid Build Coastguard Worker ftrace_event_buffer_commit (0xffffffff81146d5f) 407*58e6ee5fSAndroid Build Coastguard Worker ftrace_raw_event_sched_process_exec (0xffffffff8109c511) 408*58e6ee5fSAndroid Build Coastguard Worker do_execveat_common.isra.31 (0xffffffff811de9a3) 409*58e6ee5fSAndroid Build Coastguard Worker do_execve (0xffffffff811dea8c) 410*58e6ee5fSAndroid Build Coastguard Worker SyS_execve (0xffffffff811ded1e) 411*58e6ee5fSAndroid Build Coastguard Worker return_to_handler (0xffffffff816c8458) 412*58e6ee5fSAndroid Build Coastguard Worker stub_execve (0xffffffff816c6929) 413*58e6ee5fSAndroid Build Coastguard Worker 414*58e6ee5fSAndroid Build Coastguard Worker 415*58e6ee5fSAndroid Build Coastguard Worker Event: softirq_entry:SCHED (2) Total: 2289 Avg: 1144 Max: 1350 Min:939 416*58e6ee5fSAndroid Build Coastguard Worker Event: softirq_entry:HI (3) Total: 180146 Avg: 60048 Max: 178969 Min:499 417*58e6ee5fSAndroid Build Coastguard Worker | 418*58e6ee5fSAndroid Build Coastguard Worker + ftrace_raw_event_sched_wakeup_template (0xffffffff8109d960) 419*58e6ee5fSAndroid Build Coastguard Worker 100% (1) time:178969 max:178969 min:0 avg:178969 420*58e6ee5fSAndroid Build Coastguard Worker ttwu_do_wakeup (0xffffffff810a01a2) 421*58e6ee5fSAndroid Build Coastguard Worker ttwu_do_activate.constprop.122 (0xffffffff810a0236) 422*58e6ee5fSAndroid Build Coastguard Worker try_to_wake_up (0xffffffff810a3ec3) 423*58e6ee5fSAndroid Build Coastguard Worker wake_up_process (0xffffffff810a4057) 424*58e6ee5fSAndroid Build Coastguard Worker wake_up_worker (0xffffffff8108de74) 425*58e6ee5fSAndroid Build Coastguard Worker insert_work (0xffffffff8108fca6) 426*58e6ee5fSAndroid Build Coastguard Worker __queue_work (0xffffffff8108fe12) 427*58e6ee5fSAndroid Build Coastguard Worker delayed_work_timer_fn (0xffffffff81090088) 428*58e6ee5fSAndroid Build Coastguard Worker call_timer_fn (0xffffffff810d8f89) 429*58e6ee5fSAndroid Build Coastguard Worker run_timer_softirq (0xffffffff810da8a1) 430*58e6ee5fSAndroid Build Coastguard Worker __do_softirq (0xffffffff8107d8fa) 431*58e6ee5fSAndroid Build Coastguard Worker irq_exit (0xffffffff8107dd66) 432*58e6ee5fSAndroid Build Coastguard Worker smp_trace_apic_timer_interrupt (0xffffffff816c8c7a) 433*58e6ee5fSAndroid Build Coastguard Worker trace_apic_timer_interrupt (0xffffffff816c725a) 434*58e6ee5fSAndroid Build Coastguard Worker prepare_ftrace_return (0xffffffff8103d4fd) 435*58e6ee5fSAndroid Build Coastguard Worker ftrace_graph_caller (0xffffffff816c8428) 436*58e6ee5fSAndroid Build Coastguard Worker mem_cgroup_begin_page_stat (0xffffffff811cfd25) 437*58e6ee5fSAndroid Build Coastguard Worker page_remove_rmap (0xffffffff811a4fc5) 438*58e6ee5fSAndroid Build Coastguard Worker stub_execve (0xffffffff816c6929) 439*58e6ee5fSAndroid Build Coastguard Worker unmap_single_vma (0xffffffff81198b1c) 440*58e6ee5fSAndroid Build Coastguard Worker unmap_vmas (0xffffffff81199174) 441*58e6ee5fSAndroid Build Coastguard Worker exit_mmap (0xffffffff811a1f5b) 442*58e6ee5fSAndroid Build Coastguard Worker mmput (0xffffffff8107699a) 443*58e6ee5fSAndroid Build Coastguard Worker flush_old_exec (0xffffffff811ddb75) 444*58e6ee5fSAndroid Build Coastguard Worker load_elf_binary (0xffffffff812287df) 445*58e6ee5fSAndroid Build Coastguard Worker search_binary_handler (0xffffffff811dd3e0) 446*58e6ee5fSAndroid Build Coastguard Worker do_execveat_common.isra.31 (0xffffffff811de8bd) 447*58e6ee5fSAndroid Build Coastguard Worker do_execve (0xffffffff811dea8c) 448*58e6ee5fSAndroid Build Coastguard Worker SyS_execve (0xffffffff811ded1e) 449*58e6ee5fSAndroid Build Coastguard Worker return_to_handler (0xffffffff816c8458) 450*58e6ee5fSAndroid Build Coastguard Worker --- 451*58e6ee5fSAndroid Build Coastguard Worker 452*58e6ee5fSAndroid Build Coastguard WorkerThe above uses *-F* to follow the sleep task. It filters only on events 453*58e6ee5fSAndroid Build Coastguard Workerthat pertain to sleep. Note, in order to follow forks, you need to also 454*58e6ee5fSAndroid Build Coastguard Workerinclude the *-c* flag. 455*58e6ee5fSAndroid Build Coastguard Worker 456*58e6ee5fSAndroid Build Coastguard WorkerOther tasks will appear in the profile as well if events reference more 457*58e6ee5fSAndroid Build Coastguard Workerthan one task (like sched_switch and sched_wakeup do. The "prev_pid" and 458*58e6ee5fSAndroid Build Coastguard Worker"next_pid" of sched_switch, and the "common_pid" and "pid" of sched_wakeup). 459*58e6ee5fSAndroid Build Coastguard Worker 460*58e6ee5fSAndroid Build Coastguard WorkerStack traces are attached to events that are related to them. 461*58e6ee5fSAndroid Build Coastguard Worker 462*58e6ee5fSAndroid Build Coastguard WorkerTaking a look at the above output: 463*58e6ee5fSAndroid Build Coastguard Worker 464*58e6ee5fSAndroid Build Coastguard Worker Event: sched_switch:R (2) Total: 234559 Avg: 117279 Max: 129886 Min:104673 465*58e6ee5fSAndroid Build Coastguard Worker 466*58e6ee5fSAndroid Build Coastguard WorkerThis shows that task was preempted (it's in the running 'R' state). 467*58e6ee5fSAndroid Build Coastguard WorkerIt was preempted twice '(2)' for a total of 234,559 nanoseconds, with a average 468*58e6ee5fSAndroid Build Coastguard Workerpreempt time of 117,279 ns, and maximum of 128,886 ns and minimum of 104,673 ns. 469*58e6ee5fSAndroid Build Coastguard Worker 470*58e6ee5fSAndroid Build Coastguard WorkerThe tree shows where it was preempted: 471*58e6ee5fSAndroid Build Coastguard Worker 472*58e6ee5fSAndroid Build Coastguard Worker 473*58e6ee5fSAndroid Build Coastguard Worker | 474*58e6ee5fSAndroid Build Coastguard Worker + ftrace_raw_event_sched_switch (0xffffffff8109f310) 475*58e6ee5fSAndroid Build Coastguard Worker 100% (2) time:234559 max:129886 min:104673 avg:117279 476*58e6ee5fSAndroid Build Coastguard Worker __schedule (0xffffffff816c1e81) 477*58e6ee5fSAndroid Build Coastguard Worker preempt_schedule (0xffffffff816c236e) 478*58e6ee5fSAndroid Build Coastguard Worker ___preempt_schedule (0xffffffff81351a59) 479*58e6ee5fSAndroid Build Coastguard Worker | 480*58e6ee5fSAndroid Build Coastguard Worker + unmap_single_vma (0xffffffff81198c05) 481*58e6ee5fSAndroid Build Coastguard Worker | 55% (1) time:129886 max:129886 min:0 avg:129886 482*58e6ee5fSAndroid Build Coastguard Worker | stop_one_cpu (0xffffffff8110909a) 483*58e6ee5fSAndroid Build Coastguard Worker | sched_exec (0xffffffff810a119b) 484*58e6ee5fSAndroid Build Coastguard Worker | do_execveat_common.isra.31 (0xffffffff811de528) 485*58e6ee5fSAndroid Build Coastguard Worker | do_execve (0xffffffff811dea8c) 486*58e6ee5fSAndroid Build Coastguard Worker | SyS_execve (0xffffffff811ded1e) 487*58e6ee5fSAndroid Build Coastguard Worker | return_to_handler (0xffffffff816c8458) 488*58e6ee5fSAndroid Build Coastguard Worker | stub_execve (0xffffffff816c6929) 489*58e6ee5fSAndroid Build Coastguard Worker | 490*58e6ee5fSAndroid Build Coastguard Worker + unmap_single_vma (0xffffffff81198c05) 491*58e6ee5fSAndroid Build Coastguard Worker 45% (1) time:104673 max:104673 min:0 avg:104673 492*58e6ee5fSAndroid Build Coastguard Worker unmap_vmas (0xffffffff81199174) 493*58e6ee5fSAndroid Build Coastguard Worker exit_mmap (0xffffffff811a1f5b) 494*58e6ee5fSAndroid Build Coastguard Worker mmput (0xffffffff8107699a) 495*58e6ee5fSAndroid Build Coastguard Worker flush_old_exec (0xffffffff811ddb75) 496*58e6ee5fSAndroid Build Coastguard Worker load_elf_binary (0xffffffff812287df) 497*58e6ee5fSAndroid Build Coastguard Worker search_binary_handler (0xffffffff811dd3e0) 498*58e6ee5fSAndroid Build Coastguard Worker do_execveat_common.isra.31 (0xffffffff811de8bd) 499*58e6ee5fSAndroid Build Coastguard Worker do_execve (0xffffffff811dea8c) 500*58e6ee5fSAndroid Build Coastguard Worker SyS_execve (0xffffffff811ded1e) 501*58e6ee5fSAndroid Build Coastguard Worker return_to_handler (0xffffffff816c8458) 502*58e6ee5fSAndroid Build Coastguard Worker stub_execve (0xffffffff816c6929) 503*58e6ee5fSAndroid Build Coastguard Worker 504*58e6ee5fSAndroid Build Coastguard Worker 505*58e6ee5fSAndroid Build Coastguard Worker Event: sched_switch:S (1) Total: 1000513242 Avg: 1000513242 Max: 1000513242 Min:10005132 506*58e6ee5fSAndroid Build Coastguard Worker 507*58e6ee5fSAndroid Build Coastguard WorkerThis shows that the task was scheduled out in the INTERRUPTIBLE state once 508*58e6ee5fSAndroid Build Coastguard Workerfor a total of 1,000,513,242 ns (~1s), which makes sense as the task was a 509*58e6ee5fSAndroid Build Coastguard Worker"sleep 1". 510*58e6ee5fSAndroid Build Coastguard Worker 511*58e6ee5fSAndroid Build Coastguard WorkerAfter the schedule events, the function events are shown. By default the 512*58e6ee5fSAndroid Build Coastguard Workerprofiler will use the function graph tracer if the depth setting is supported 513*58e6ee5fSAndroid Build Coastguard Workerby the kernel. It will set the depth to one which will only trace the first 514*58e6ee5fSAndroid Build Coastguard Workerfunction that enters the kernel. It will also record the amount of time 515*58e6ee5fSAndroid Build Coastguard Workerit was in the kernel. 516*58e6ee5fSAndroid Build Coastguard Worker 517*58e6ee5fSAndroid Build Coastguard Worker Event: func: sys_nanosleep() (1) Total: 1000598016 Avg: 1000598016 Max: 1000598016 Min:1000598016 518*58e6ee5fSAndroid Build Coastguard Worker Event: func: sys_munmap() (1) Total: 14300 Avg: 14300 Max: 14300 Min:14300 519*58e6ee5fSAndroid Build Coastguard Worker Event: func: sys_arch_prctl() (1) Total: 571 Avg: 571 Max: 571 Min:571 520*58e6ee5fSAndroid Build Coastguard Worker Event: func: sys_mprotect() (4) Total: 14382 Avg: 3595 Max: 7196 Min:2190 521*58e6ee5fSAndroid Build Coastguard Worker Event: func: SyS_read() (1) Total: 2640 Avg: 2640 Max: 2640 Min:2640 522*58e6ee5fSAndroid Build Coastguard Worker Event: func: sys_close() (5) Total: 4001 Avg: 800 Max: 1252 Min:414 523*58e6ee5fSAndroid Build Coastguard Worker Event: func: sys_newfstat() (3) Total: 11684 Avg: 3894 Max: 10206 Min:636 524*58e6ee5fSAndroid Build Coastguard Worker Event: func: SyS_open() (3) Total: 23615 Avg: 7871 Max: 10535 Min:4743 525*58e6ee5fSAndroid Build Coastguard Worker Event: func: sys_access() (1) Total: 5924 Avg: 5924 Max: 5924 Min:5924 526*58e6ee5fSAndroid Build Coastguard Worker Event: func: SyS_mmap() (8) Total: 39153 Avg: 4894 Max: 12354 Min:1518 527*58e6ee5fSAndroid Build Coastguard Worker Event: func: smp_trace_apic_timer_interrupt() (1) Total: 10298 Avg: 10298 Max: 10298 Min:10298 528*58e6ee5fSAndroid Build Coastguard Worker Event: func: SyS_brk() (4) Total: 2407 Avg: 601 Max: 1564 Min:206 529*58e6ee5fSAndroid Build Coastguard Worker Event: func: do_notify_resume() (2) Total: 4095 Avg: 2047 Max: 2521 Min:1574 530*58e6ee5fSAndroid Build Coastguard Worker Event: func: sys_execve() (5) Total: 1625251 Avg: 325050 Max: 1605698 Min:3570 531*58e6ee5fSAndroid Build Coastguard Worker 532*58e6ee5fSAndroid Build Coastguard Worker 533*58e6ee5fSAndroid Build Coastguard WorkerCount of times the event was hit is always in parenthesis '(5)'. 534*58e6ee5fSAndroid Build Coastguard Worker 535*58e6ee5fSAndroid Build Coastguard WorkerThe function graph trace may produce too much overhead as it is still 536*58e6ee5fSAndroid Build Coastguard Workertriggering (just not tracing) on all functions. To limit functions just to 537*58e6ee5fSAndroid Build Coastguard Workersystem calls (not interrupts), add the following option: 538*58e6ee5fSAndroid Build Coastguard Worker 539*58e6ee5fSAndroid Build Coastguard Worker -l 'sys_*' -l 'SyS_*' 540*58e6ee5fSAndroid Build Coastguard Worker 541*58e6ee5fSAndroid Build Coastguard WorkerTo disable function graph tracing totally, use: 542*58e6ee5fSAndroid Build Coastguard Worker 543*58e6ee5fSAndroid Build Coastguard Worker -p nop 544*58e6ee5fSAndroid Build Coastguard Worker 545*58e6ee5fSAndroid Build Coastguard WorkerTo use function tracing instead (note, this will not record timings, but just 546*58e6ee5fSAndroid Build Coastguard Workerthe count of times a function is hit): 547*58e6ee5fSAndroid Build Coastguard Worker 548*58e6ee5fSAndroid Build Coastguard Worker -p function 549*58e6ee5fSAndroid Build Coastguard Worker 550*58e6ee5fSAndroid Build Coastguard Worker 551*58e6ee5fSAndroid Build Coastguard WorkerFollowing the functions are the events that are recorded. 552*58e6ee5fSAndroid Build Coastguard Worker 553*58e6ee5fSAndroid Build Coastguard Worker 554*58e6ee5fSAndroid Build Coastguard Worker Event: sys_enter:35 (1) Total: 1000599765 Avg: 1000599765 Max: 1000599765 Min:1000599765 555*58e6ee5fSAndroid Build Coastguard Worker Event: sys_enter:11 (1) Total: 55025 Avg: 55025 Max: 55025 Min:55025 556*58e6ee5fSAndroid Build Coastguard Worker Event: sys_enter:158 (1) Total: 1584 Avg: 1584 Max: 1584 Min:1584 557*58e6ee5fSAndroid Build Coastguard Worker Event: sys_enter:10 (4) Total: 18359 Avg: 4589 Max: 8764 Min:2933 558*58e6ee5fSAndroid Build Coastguard Worker Event: sys_enter:0 (1) Total: 4223 Avg: 4223 Max: 4223 Min:4223 559*58e6ee5fSAndroid Build Coastguard Worker Event: sys_enter:3 (5) Total: 9948 Avg: 1989 Max: 2606 Min:1203 560*58e6ee5fSAndroid Build Coastguard Worker Event: sys_enter:5 (3) Total: 15530 Avg: 5176 Max: 11840 Min:1405 561*58e6ee5fSAndroid Build Coastguard Worker Event: sys_enter:2 (3) Total: 28002 Avg: 9334 Max: 12035 Min:5656 562*58e6ee5fSAndroid Build Coastguard Worker Event: sys_enter:21 (1) Total: 7814 Avg: 7814 Max: 7814 Min:7814 563*58e6ee5fSAndroid Build Coastguard Worker Event: sys_enter:9 (8) Total: 49583 Avg: 6197 Max: 14137 Min:2362 564*58e6ee5fSAndroid Build Coastguard Worker Event: sys_enter:12 (4) Total: 108493 Avg: 27123 Max: 104079 Min:922 565*58e6ee5fSAndroid Build Coastguard Worker Event: sys_enter:59 (5) Total: 1631608 Avg: 326321 Max: 1607529 Min:4563 566*58e6ee5fSAndroid Build Coastguard Worker 567*58e6ee5fSAndroid Build Coastguard WorkerThese are the raw system call events, with the raw system call ID after 568*58e6ee5fSAndroid Build Coastguard Workerthe "sys_enter:" For example, "59" is execve(2). Why did it execute 5 times? 569*58e6ee5fSAndroid Build Coastguard WorkerLooking at a strace of this run, we can see: 570*58e6ee5fSAndroid Build Coastguard Worker 571*58e6ee5fSAndroid Build Coastguard Worker execve("/usr/lib64/ccache/sleep", ["sleep", "1"], [/* 27 vars */] <unfinished ...> 572*58e6ee5fSAndroid Build Coastguard Worker <... execve resumed> ) = -1 ENOENT (No such file or directory) 573*58e6ee5fSAndroid Build Coastguard Worker execve("/usr/local/sbin/sleep", ["sleep", "1"], [/* 27 vars */] <unfinished ...> 574*58e6ee5fSAndroid Build Coastguard Worker <... execve resumed> ) = -1 ENOENT (No such file or directory) 575*58e6ee5fSAndroid Build Coastguard Worker execve("/usr/local/bin/sleep", ["sleep", "1"], [/* 27 vars */] <unfinished ...> 576*58e6ee5fSAndroid Build Coastguard Worker <... execve resumed> ) = -1 ENOENT (No such file or directory) 577*58e6ee5fSAndroid Build Coastguard Worker execve("/usr/sbin/sleep", ["sleep", "1"], [/* 27 vars */] <unfinished ...> 578*58e6ee5fSAndroid Build Coastguard Worker <... execve resumed> ) = -1 ENOENT (No such file or directory) 579*58e6ee5fSAndroid Build Coastguard Worker execve("/usr/bin/sleep", ["sleep", "1"], [/* 27 vars */] <unfinished ...> 580*58e6ee5fSAndroid Build Coastguard Worker <... execve resumed> ) = 0 581*58e6ee5fSAndroid Build Coastguard Worker 582*58e6ee5fSAndroid Build Coastguard WorkerIt attempted to execve the "sleep" command for each path in $PATH until it found 583*58e6ee5fSAndroid Build Coastguard Workerone. 584*58e6ee5fSAndroid Build Coastguard Worker 585*58e6ee5fSAndroid Build Coastguard WorkerThe page_fault_user events show what userspace address took a page fault. 586*58e6ee5fSAndroid Build Coastguard Worker 587*58e6ee5fSAndroid Build Coastguard Worker Event: softirq_raise:RCU (3) Total: 252931 Avg: 84310 Max: 243288 Min:4639 588*58e6ee5fSAndroid Build Coastguard Worker Event: softirq_raise:SCHED (2) Total: 241249 Avg: 120624 Max: 239076 Min:2173 589*58e6ee5fSAndroid Build Coastguard Worker | 590*58e6ee5fSAndroid Build Coastguard Worker + ftrace_raw_event_sched_wakeup_template (0xffffffff8109d960) 591*58e6ee5fSAndroid Build Coastguard Worker 100% (1) time:239076 max:239076 min:0 avg:239076 592*58e6ee5fSAndroid Build Coastguard Worker ttwu_do_wakeup (0xffffffff810a01a2) 593*58e6ee5fSAndroid Build Coastguard Worker ttwu_do_activate.constprop.122 (0xffffffff810a0236) 594*58e6ee5fSAndroid Build Coastguard Worker try_to_wake_up (0xffffffff810a3ec3) 595*58e6ee5fSAndroid Build Coastguard Worker default_wake_function (0xffffffff810a4002) 596*58e6ee5fSAndroid Build Coastguard Worker autoremove_wake_function (0xffffffff810b50fd) 597*58e6ee5fSAndroid Build Coastguard Worker __wake_up_common (0xffffffff810b4958) 598*58e6ee5fSAndroid Build Coastguard Worker __wake_up (0xffffffff810b4cb8) 599*58e6ee5fSAndroid Build Coastguard Worker rb_wake_up_waiters (0xffffffff8112f126) 600*58e6ee5fSAndroid Build Coastguard Worker irq_work_run_list (0xffffffff81157d0f) 601*58e6ee5fSAndroid Build Coastguard Worker irq_work_run (0xffffffff81157d5e) 602*58e6ee5fSAndroid Build Coastguard Worker smp_trace_irq_work_interrupt (0xffffffff810082fc) 603*58e6ee5fSAndroid Build Coastguard Worker trace_irq_work_interrupt (0xffffffff816c7aaa) 604*58e6ee5fSAndroid Build Coastguard Worker irq_exit (0xffffffff8107dd66) 605*58e6ee5fSAndroid Build Coastguard Worker 606*58e6ee5fSAndroid Build Coastguard WorkerThe timings for the softirq_raise events measure the time it took from the raised 607*58e6ee5fSAndroid Build Coastguard Workersoftirq to the time it executed. 608*58e6ee5fSAndroid Build Coastguard Worker 609*58e6ee5fSAndroid Build Coastguard WorkerThe timings for the softirq_entry events measure the time the softirq took to 610*58e6ee5fSAndroid Build Coastguard Workerexecute. 611*58e6ee5fSAndroid Build Coastguard Worker 612*58e6ee5fSAndroid Build Coastguard WorkerThe stack traces for the softirqs (and possibly other events) are used when 613*58e6ee5fSAndroid Build Coastguard Workeran event has a stack attached to it. This can happen if the profile ran 614*58e6ee5fSAndroid Build Coastguard Workermore stacks than just the sched events, or when events are dropped and 615*58e6ee5fSAndroid Build Coastguard Workerstacks 616*58e6ee5fSAndroid Build Coastguard Worker 617*58e6ee5fSAndroid Build Coastguard Worker 618*58e6ee5fSAndroid Build Coastguard WorkerTo have full control of what gets traced, use the *-S* option that will have 619*58e6ee5fSAndroid Build Coastguard Workertrace-cmd not enable any events or the function_graph tracer. Only the events 620*58e6ee5fSAndroid Build Coastguard Workerlisted on the command line are shown. 621*58e6ee5fSAndroid Build Coastguard Worker 622*58e6ee5fSAndroid Build Coastguard WorkerIf only the time of kmalloc is needed to be seen, and where it was recorded, 623*58e6ee5fSAndroid Build Coastguard Workerusing the *-S* option and enabling function_graph and stack tracing for just 624*58e6ee5fSAndroid Build Coastguard Workerthe function needed will give the profile of only that function. 625*58e6ee5fSAndroid Build Coastguard Worker 626*58e6ee5fSAndroid Build Coastguard Worker --- 627*58e6ee5fSAndroid Build Coastguard Worker# trace-cmd profile -S -p function_graph -l '*kmalloc*' -l '*kmalloc*:stacktrace' sleep 1 628*58e6ee5fSAndroid Build Coastguard Workertask: sshd-11786 629*58e6ee5fSAndroid Build Coastguard Worker Event: func: __kmalloc_reserve.isra.59() (2) Total: 149684 Avg: 74842 Max: 75598 Min:74086 630*58e6ee5fSAndroid Build Coastguard Worker | 631*58e6ee5fSAndroid Build Coastguard Worker + __alloc_skb (0xffffffff815a8917) 632*58e6ee5fSAndroid Build Coastguard Worker | 67% (2) time:149684 max:75598 min:74086 avg:74842 633*58e6ee5fSAndroid Build Coastguard Worker | __kmalloc_node_track_caller (0xffffffff811c6635) 634*58e6ee5fSAndroid Build Coastguard Worker | __kmalloc_reserve.isra.59 (0xffffffff815a84ac) 635*58e6ee5fSAndroid Build Coastguard Worker | return_to_handler (0xffffffff816c8458) 636*58e6ee5fSAndroid Build Coastguard Worker | sk_stream_alloc_skb (0xffffffff81604ea1) 637*58e6ee5fSAndroid Build Coastguard Worker | tcp_sendmsg (0xffffffff8160592c) 638*58e6ee5fSAndroid Build Coastguard Worker | inet_sendmsg (0xffffffff8162fed1) 639*58e6ee5fSAndroid Build Coastguard Worker | sock_aio_write (0xffffffff8159f9fc) 640*58e6ee5fSAndroid Build Coastguard Worker | do_sync_write (0xffffffff811d694a) 641*58e6ee5fSAndroid Build Coastguard Worker | vfs_write (0xffffffff811d7825) 642*58e6ee5fSAndroid Build Coastguard Worker | SyS_write (0xffffffff811d7adf) 643*58e6ee5fSAndroid Build Coastguard Worker | system_call_fastpath (0xffffffff816c63d2) 644*58e6ee5fSAndroid Build Coastguard Worker | 645*58e6ee5fSAndroid Build Coastguard Worker + __alloc_skb (0xffffffff815a8917) 646*58e6ee5fSAndroid Build Coastguard Worker 33% (1) time:74086 max:74086 min:74086 avg:74086 647*58e6ee5fSAndroid Build Coastguard Worker __alloc_skb (0xffffffff815a8917) 648*58e6ee5fSAndroid Build Coastguard Worker sk_stream_alloc_skb (0xffffffff81604ea1) 649*58e6ee5fSAndroid Build Coastguard Worker tcp_sendmsg (0xffffffff8160592c) 650*58e6ee5fSAndroid Build Coastguard Worker inet_sendmsg (0xffffffff8162fed1) 651*58e6ee5fSAndroid Build Coastguard Worker sock_aio_write (0xffffffff8159f9fc) 652*58e6ee5fSAndroid Build Coastguard Worker do_sync_write (0xffffffff811d694a) 653*58e6ee5fSAndroid Build Coastguard Worker vfs_write (0xffffffff811d7825) 654*58e6ee5fSAndroid Build Coastguard Worker SyS_write (0xffffffff811d7adf) 655*58e6ee5fSAndroid Build Coastguard Worker system_call_fastpath (0xffffffff816c63d2) 656*58e6ee5fSAndroid Build Coastguard Worker [..] 657*58e6ee5fSAndroid Build Coastguard Worker--- 658*58e6ee5fSAndroid Build Coastguard Worker 659*58e6ee5fSAndroid Build Coastguard WorkerTo watch the command run but save the output of the profile to a file 660*58e6ee5fSAndroid Build Coastguard Workeruse --stderr, and redirect stderr to a file 661*58e6ee5fSAndroid Build Coastguard Worker 662*58e6ee5fSAndroid Build Coastguard Worker# trace-cmd profile --stderr cyclictest -p 80 -n -t1 2> profile.out 663*58e6ee5fSAndroid Build Coastguard Worker 664*58e6ee5fSAndroid Build Coastguard WorkerOr simple use *-o* 665*58e6ee5fSAndroid Build Coastguard Worker 666*58e6ee5fSAndroid Build Coastguard Worker# trace-cmd profile -o profile.out cyclictest -p 80 -n -t1 667*58e6ee5fSAndroid Build Coastguard Worker 668*58e6ee5fSAndroid Build Coastguard WorkerSEE ALSO 669*58e6ee5fSAndroid Build Coastguard Worker-------- 670*58e6ee5fSAndroid Build Coastguard Workertrace-cmd(1), trace-cmd-record(1), trace-cmd-report(1), trace-cmd-start(1), 671*58e6ee5fSAndroid Build Coastguard Workertrace-cmd-stop(1), trace-cmd-reset(1), trace-cmd-split(1), 672*58e6ee5fSAndroid Build Coastguard Workertrace-cmd-list(1), trace-cmd-listen(1) 673*58e6ee5fSAndroid Build Coastguard Worker 674*58e6ee5fSAndroid Build Coastguard WorkerAUTHOR 675*58e6ee5fSAndroid Build Coastguard Worker------ 676*58e6ee5fSAndroid Build Coastguard WorkerWritten by Steven Rostedt, <[email protected]> 677*58e6ee5fSAndroid Build Coastguard Worker 678*58e6ee5fSAndroid Build Coastguard WorkerRESOURCES 679*58e6ee5fSAndroid Build Coastguard Worker--------- 680*58e6ee5fSAndroid Build Coastguard Workerhttps://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git/ 681*58e6ee5fSAndroid Build Coastguard Worker 682*58e6ee5fSAndroid Build Coastguard WorkerCOPYING 683*58e6ee5fSAndroid Build Coastguard Worker------- 684*58e6ee5fSAndroid Build Coastguard WorkerCopyright \(C) 2014 Red Hat, Inc. Free use of this software is granted under 685*58e6ee5fSAndroid Build Coastguard Workerthe terms of the GNU Public License (GPL). 686*58e6ee5fSAndroid Build Coastguard Worker 687