forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
180 lines
5.0 KiB
180 lines
5.0 KiB
perf-kowrk(1) |
|
============= |
|
|
|
NAME |
|
---- |
|
perf-kwork - Tool to trace/measure kernel work properties (latencies) |
|
|
|
SYNOPSIS |
|
-------- |
|
[verse] |
|
'perf kwork' {record} |
|
|
|
DESCRIPTION |
|
----------- |
|
There are several variants of 'perf kwork': |
|
|
|
'perf kwork record <command>' to record the kernel work |
|
of an arbitrary workload. |
|
|
|
'perf kwork report' to report the per kwork runtime. |
|
|
|
'perf kwork latency' to report the per kwork latencies. |
|
|
|
'perf kwork timehist' provides an analysis of kernel work events. |
|
|
|
Example usage: |
|
perf kwork record -- sleep 1 |
|
perf kwork report |
|
perf kwork report -b |
|
perf kwork latency |
|
perf kwork latency -b |
|
perf kwork timehist |
|
|
|
By default it shows the individual work events such as irq, workqeueu, |
|
including the run time and delay (time between raise and actually entry): |
|
|
|
Runtime start Runtime end Cpu Kwork name Runtime Delaytime |
|
(TYPE)NAME:NUM (msec) (msec) |
|
----------------- ----------------- ------ ------------------------- ---------- ---------- |
|
1811186.976062 1811186.976327 [0000] (s)RCU:9 0.266 0.114 |
|
1811186.978452 1811186.978547 [0000] (s)SCHED:7 0.095 0.171 |
|
1811186.980327 1811186.980490 [0000] (s)SCHED:7 0.162 0.083 |
|
1811186.981221 1811186.981271 [0000] (s)SCHED:7 0.050 0.077 |
|
1811186.984267 1811186.984318 [0000] (s)SCHED:7 0.051 0.075 |
|
1811186.987252 1811186.987315 [0000] (s)SCHED:7 0.063 0.081 |
|
1811186.987785 1811186.987843 [0006] (s)RCU:9 0.058 0.645 |
|
1811186.988319 1811186.988383 [0000] (s)SCHED:7 0.064 0.143 |
|
1811186.989404 1811186.989607 [0002] (s)TIMER:1 0.203 0.111 |
|
1811186.989660 1811186.989732 [0002] (s)SCHED:7 0.072 0.310 |
|
1811186.991295 1811186.991407 [0002] eth0:10 0.112 |
|
1811186.991639 1811186.991734 [0002] (s)NET_RX:3 0.095 0.277 |
|
1811186.989860 1811186.991826 [0002] (w)vmstat_shepherd 1.966 0.345 |
|
... |
|
|
|
Times are in msec.usec. |
|
|
|
OPTIONS |
|
------- |
|
-D:: |
|
--dump-raw-trace=:: |
|
Display verbose dump of the sched data. |
|
|
|
-f:: |
|
--force:: |
|
Don't complain, do it. |
|
|
|
-k:: |
|
--kwork:: |
|
List of kwork to profile (irq, softirq, workqueue, etc) |
|
|
|
-v:: |
|
--verbose:: |
|
Be more verbose. (show symbol address, etc) |
|
|
|
OPTIONS for 'perf kwork report' |
|
---------------------------- |
|
|
|
-b:: |
|
--use-bpf:: |
|
Use BPF to measure kwork runtime |
|
|
|
-C:: |
|
--cpu:: |
|
Only show events for the given CPU(s) (comma separated list). |
|
|
|
-i:: |
|
--input:: |
|
Input file name. (default: perf.data unless stdin is a fifo) |
|
|
|
-n:: |
|
--name:: |
|
Only show events for the given name. |
|
|
|
-s:: |
|
--sort:: |
|
Sort by key(s): runtime, max, count |
|
|
|
-S:: |
|
--with-summary:: |
|
Show summary with statistics |
|
|
|
--time:: |
|
Only analyze samples within given time window: <start>,<stop>. Times |
|
have the format seconds.microseconds. If start is not given (i.e., time |
|
string is ',x.y') then analysis starts at the beginning of the file. If |
|
stop time is not given (i.e, time string is 'x.y,') then analysis goes |
|
to end of file. |
|
|
|
OPTIONS for 'perf kwork latency' |
|
---------------------------- |
|
|
|
-b:: |
|
--use-bpf:: |
|
Use BPF to measure kwork latency |
|
|
|
-C:: |
|
--cpu:: |
|
Only show events for the given CPU(s) (comma separated list). |
|
|
|
-i:: |
|
--input:: |
|
Input file name. (default: perf.data unless stdin is a fifo) |
|
|
|
-n:: |
|
--name:: |
|
Only show events for the given name. |
|
|
|
-s:: |
|
--sort:: |
|
Sort by key(s): avg, max, count |
|
|
|
--time:: |
|
Only analyze samples within given time window: <start>,<stop>. Times |
|
have the format seconds.microseconds. If start is not given (i.e., time |
|
string is ',x.y') then analysis starts at the beginning of the file. If |
|
stop time is not given (i.e, time string is 'x.y,') then analysis goes |
|
to end of file. |
|
|
|
OPTIONS for 'perf kwork timehist' |
|
--------------------------------- |
|
|
|
-C:: |
|
--cpu:: |
|
Only show events for the given CPU(s) (comma separated list). |
|
|
|
-g:: |
|
--call-graph:: |
|
Display call chains if present (default off). |
|
|
|
-i:: |
|
--input:: |
|
Input file name. (default: perf.data unless stdin is a fifo) |
|
|
|
-k:: |
|
--vmlinux=<file>:: |
|
Vmlinux pathname |
|
|
|
-n:: |
|
--name:: |
|
Only show events for the given name. |
|
|
|
--kallsyms=<file>:: |
|
Kallsyms pathname |
|
|
|
--max-stack:: |
|
Maximum number of functions to display in backtrace, default 5. |
|
|
|
--symfs=<directory>:: |
|
Look for files with symbols relative to this directory. |
|
|
|
--time:: |
|
Only analyze samples within given time window: <start>,<stop>. Times |
|
have the format seconds.microseconds. If start is not given (i.e., time |
|
string is ',x.y') then analysis starts at the beginning of the file. If |
|
stop time is not given (i.e, time string is 'x.y,') then analysis goes |
|
to end of file. |
|
|
|
SEE ALSO |
|
-------- |
|
linkperf:perf-record[1]
|
|
|