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