162306a36Sopenharmony_ciperf-kowrk(1) 262306a36Sopenharmony_ci============= 362306a36Sopenharmony_ci 462306a36Sopenharmony_ciNAME 562306a36Sopenharmony_ci---- 662306a36Sopenharmony_ciperf-kwork - Tool to trace/measure kernel work properties (latencies) 762306a36Sopenharmony_ci 862306a36Sopenharmony_ciSYNOPSIS 962306a36Sopenharmony_ci-------- 1062306a36Sopenharmony_ci[verse] 1162306a36Sopenharmony_ci'perf kwork' {record|report|latency|timehist} 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ciDESCRIPTION 1462306a36Sopenharmony_ci----------- 1562306a36Sopenharmony_ciThere are several variants of 'perf kwork': 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci 'perf kwork record <command>' to record the kernel work 1862306a36Sopenharmony_ci of an arbitrary workload. 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci 'perf kwork report' to report the per kwork runtime. 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci 'perf kwork latency' to report the per kwork latencies. 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci 'perf kwork timehist' provides an analysis of kernel work events. 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci Example usage: 2762306a36Sopenharmony_ci perf kwork record -- sleep 1 2862306a36Sopenharmony_ci perf kwork report 2962306a36Sopenharmony_ci perf kwork report -b 3062306a36Sopenharmony_ci perf kwork latency 3162306a36Sopenharmony_ci perf kwork latency -b 3262306a36Sopenharmony_ci perf kwork timehist 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci By default it shows the individual work events such as irq, workqeueu, 3562306a36Sopenharmony_ci including the run time and delay (time between raise and actually entry): 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci Runtime start Runtime end Cpu Kwork name Runtime Delaytime 3862306a36Sopenharmony_ci (TYPE)NAME:NUM (msec) (msec) 3962306a36Sopenharmony_ci ----------------- ----------------- ------ ------------------------- ---------- ---------- 4062306a36Sopenharmony_ci 1811186.976062 1811186.976327 [0000] (s)RCU:9 0.266 0.114 4162306a36Sopenharmony_ci 1811186.978452 1811186.978547 [0000] (s)SCHED:7 0.095 0.171 4262306a36Sopenharmony_ci 1811186.980327 1811186.980490 [0000] (s)SCHED:7 0.162 0.083 4362306a36Sopenharmony_ci 1811186.981221 1811186.981271 [0000] (s)SCHED:7 0.050 0.077 4462306a36Sopenharmony_ci 1811186.984267 1811186.984318 [0000] (s)SCHED:7 0.051 0.075 4562306a36Sopenharmony_ci 1811186.987252 1811186.987315 [0000] (s)SCHED:7 0.063 0.081 4662306a36Sopenharmony_ci 1811186.987785 1811186.987843 [0006] (s)RCU:9 0.058 0.645 4762306a36Sopenharmony_ci 1811186.988319 1811186.988383 [0000] (s)SCHED:7 0.064 0.143 4862306a36Sopenharmony_ci 1811186.989404 1811186.989607 [0002] (s)TIMER:1 0.203 0.111 4962306a36Sopenharmony_ci 1811186.989660 1811186.989732 [0002] (s)SCHED:7 0.072 0.310 5062306a36Sopenharmony_ci 1811186.991295 1811186.991407 [0002] eth0:10 0.112 5162306a36Sopenharmony_ci 1811186.991639 1811186.991734 [0002] (s)NET_RX:3 0.095 0.277 5262306a36Sopenharmony_ci 1811186.989860 1811186.991826 [0002] (w)vmstat_shepherd 1.966 0.345 5362306a36Sopenharmony_ci ... 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ci Times are in msec.usec. 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ciOPTIONS 5862306a36Sopenharmony_ci------- 5962306a36Sopenharmony_ci-D:: 6062306a36Sopenharmony_ci--dump-raw-trace=:: 6162306a36Sopenharmony_ci Display verbose dump of the sched data. 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ci-f:: 6462306a36Sopenharmony_ci--force:: 6562306a36Sopenharmony_ci Don't complain, do it. 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci-k:: 6862306a36Sopenharmony_ci--kwork:: 6962306a36Sopenharmony_ci List of kwork to profile (irq, softirq, workqueue, etc) 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci-v:: 7262306a36Sopenharmony_ci--verbose:: 7362306a36Sopenharmony_ci Be more verbose. (show symbol address, etc) 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ciOPTIONS for 'perf kwork report' 7662306a36Sopenharmony_ci---------------------------- 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ci-b:: 7962306a36Sopenharmony_ci--use-bpf:: 8062306a36Sopenharmony_ci Use BPF to measure kwork runtime 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ci-C:: 8362306a36Sopenharmony_ci--cpu:: 8462306a36Sopenharmony_ci Only show events for the given CPU(s) (comma separated list). 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_ci-i:: 8762306a36Sopenharmony_ci--input:: 8862306a36Sopenharmony_ci Input file name. (default: perf.data unless stdin is a fifo) 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_ci-n:: 9162306a36Sopenharmony_ci--name:: 9262306a36Sopenharmony_ci Only show events for the given name. 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_ci-s:: 9562306a36Sopenharmony_ci--sort:: 9662306a36Sopenharmony_ci Sort by key(s): runtime, max, count 9762306a36Sopenharmony_ci 9862306a36Sopenharmony_ci-S:: 9962306a36Sopenharmony_ci--with-summary:: 10062306a36Sopenharmony_ci Show summary with statistics 10162306a36Sopenharmony_ci 10262306a36Sopenharmony_ci--time:: 10362306a36Sopenharmony_ci Only analyze samples within given time window: <start>,<stop>. Times 10462306a36Sopenharmony_ci have the format seconds.microseconds. If start is not given (i.e., time 10562306a36Sopenharmony_ci string is ',x.y') then analysis starts at the beginning of the file. If 10662306a36Sopenharmony_ci stop time is not given (i.e, time string is 'x.y,') then analysis goes 10762306a36Sopenharmony_ci to end of file. 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_ciOPTIONS for 'perf kwork latency' 11062306a36Sopenharmony_ci---------------------------- 11162306a36Sopenharmony_ci 11262306a36Sopenharmony_ci-b:: 11362306a36Sopenharmony_ci--use-bpf:: 11462306a36Sopenharmony_ci Use BPF to measure kwork latency 11562306a36Sopenharmony_ci 11662306a36Sopenharmony_ci-C:: 11762306a36Sopenharmony_ci--cpu:: 11862306a36Sopenharmony_ci Only show events for the given CPU(s) (comma separated list). 11962306a36Sopenharmony_ci 12062306a36Sopenharmony_ci-i:: 12162306a36Sopenharmony_ci--input:: 12262306a36Sopenharmony_ci Input file name. (default: perf.data unless stdin is a fifo) 12362306a36Sopenharmony_ci 12462306a36Sopenharmony_ci-n:: 12562306a36Sopenharmony_ci--name:: 12662306a36Sopenharmony_ci Only show events for the given name. 12762306a36Sopenharmony_ci 12862306a36Sopenharmony_ci-s:: 12962306a36Sopenharmony_ci--sort:: 13062306a36Sopenharmony_ci Sort by key(s): avg, max, count 13162306a36Sopenharmony_ci 13262306a36Sopenharmony_ci--time:: 13362306a36Sopenharmony_ci Only analyze samples within given time window: <start>,<stop>. Times 13462306a36Sopenharmony_ci have the format seconds.microseconds. If start is not given (i.e., time 13562306a36Sopenharmony_ci string is ',x.y') then analysis starts at the beginning of the file. If 13662306a36Sopenharmony_ci stop time is not given (i.e, time string is 'x.y,') then analysis goes 13762306a36Sopenharmony_ci to end of file. 13862306a36Sopenharmony_ci 13962306a36Sopenharmony_ciOPTIONS for 'perf kwork timehist' 14062306a36Sopenharmony_ci--------------------------------- 14162306a36Sopenharmony_ci 14262306a36Sopenharmony_ci-C:: 14362306a36Sopenharmony_ci--cpu:: 14462306a36Sopenharmony_ci Only show events for the given CPU(s) (comma separated list). 14562306a36Sopenharmony_ci 14662306a36Sopenharmony_ci-g:: 14762306a36Sopenharmony_ci--call-graph:: 14862306a36Sopenharmony_ci Display call chains if present (default off). 14962306a36Sopenharmony_ci 15062306a36Sopenharmony_ci-i:: 15162306a36Sopenharmony_ci--input:: 15262306a36Sopenharmony_ci Input file name. (default: perf.data unless stdin is a fifo) 15362306a36Sopenharmony_ci 15462306a36Sopenharmony_ci-k:: 15562306a36Sopenharmony_ci--vmlinux=<file>:: 15662306a36Sopenharmony_ci Vmlinux pathname 15762306a36Sopenharmony_ci 15862306a36Sopenharmony_ci-n:: 15962306a36Sopenharmony_ci--name:: 16062306a36Sopenharmony_ci Only show events for the given name. 16162306a36Sopenharmony_ci 16262306a36Sopenharmony_ci--kallsyms=<file>:: 16362306a36Sopenharmony_ci Kallsyms pathname 16462306a36Sopenharmony_ci 16562306a36Sopenharmony_ci--max-stack:: 16662306a36Sopenharmony_ci Maximum number of functions to display in backtrace, default 5. 16762306a36Sopenharmony_ci 16862306a36Sopenharmony_ci--symfs=<directory>:: 16962306a36Sopenharmony_ci Look for files with symbols relative to this directory. 17062306a36Sopenharmony_ci 17162306a36Sopenharmony_ci--time:: 17262306a36Sopenharmony_ci Only analyze samples within given time window: <start>,<stop>. Times 17362306a36Sopenharmony_ci have the format seconds.microseconds. If start is not given (i.e., time 17462306a36Sopenharmony_ci string is ',x.y') then analysis starts at the beginning of the file. If 17562306a36Sopenharmony_ci stop time is not given (i.e, time string is 'x.y,') then analysis goes 17662306a36Sopenharmony_ci to end of file. 17762306a36Sopenharmony_ci 17862306a36Sopenharmony_ciSEE ALSO 17962306a36Sopenharmony_ci-------- 18062306a36Sopenharmony_cilinkperf:perf-record[1] 181