Commit | Line | Data |
---|---|---|
0f70d8e9 YJ |
1 | perf-kowrk(1) |
2 | ============= | |
3 | ||
4 | NAME | |
5 | ---- | |
6 | perf-kwork - Tool to trace/measure kernel work properties (latencies) | |
7 | ||
8 | SYNOPSIS | |
9 | -------- | |
10 | [verse] | |
76e0d8c8 | 11 | 'perf kwork' {record|report|latency|timehist} |
0f70d8e9 YJ |
12 | |
13 | DESCRIPTION | |
14 | ----------- | |
15 | There are several variants of 'perf kwork': | |
16 | ||
17 | 'perf kwork record <command>' to record the kernel work | |
18 | of an arbitrary workload. | |
19 | ||
f98919ec YJ |
20 | 'perf kwork report' to report the per kwork runtime. |
21 | ||
ad3d9f7a YJ |
22 | 'perf kwork latency' to report the per kwork latencies. |
23 | ||
bcc8b3e8 YJ |
24 | 'perf kwork timehist' provides an analysis of kernel work events. |
25 | ||
0f70d8e9 YJ |
26 | Example usage: |
27 | perf kwork record -- sleep 1 | |
f98919ec | 28 | perf kwork report |
daf07d22 | 29 | perf kwork report -b |
ad3d9f7a | 30 | perf kwork latency |
daf07d22 | 31 | perf kwork latency -b |
bcc8b3e8 YJ |
32 | perf kwork timehist |
33 | ||
34 | By default it shows the individual work events such as irq, workqeueu, | |
35 | including the run time and delay (time between raise and actually entry): | |
36 | ||
37 | Runtime start Runtime end Cpu Kwork name Runtime Delaytime | |
38 | (TYPE)NAME:NUM (msec) (msec) | |
39 | ----------------- ----------------- ------ ------------------------- ---------- ---------- | |
40 | 1811186.976062 1811186.976327 [0000] (s)RCU:9 0.266 0.114 | |
41 | 1811186.978452 1811186.978547 [0000] (s)SCHED:7 0.095 0.171 | |
42 | 1811186.980327 1811186.980490 [0000] (s)SCHED:7 0.162 0.083 | |
43 | 1811186.981221 1811186.981271 [0000] (s)SCHED:7 0.050 0.077 | |
44 | 1811186.984267 1811186.984318 [0000] (s)SCHED:7 0.051 0.075 | |
45 | 1811186.987252 1811186.987315 [0000] (s)SCHED:7 0.063 0.081 | |
46 | 1811186.987785 1811186.987843 [0006] (s)RCU:9 0.058 0.645 | |
47 | 1811186.988319 1811186.988383 [0000] (s)SCHED:7 0.064 0.143 | |
48 | 1811186.989404 1811186.989607 [0002] (s)TIMER:1 0.203 0.111 | |
49 | 1811186.989660 1811186.989732 [0002] (s)SCHED:7 0.072 0.310 | |
50 | 1811186.991295 1811186.991407 [0002] eth0:10 0.112 | |
51 | 1811186.991639 1811186.991734 [0002] (s)NET_RX:3 0.095 0.277 | |
52 | 1811186.989860 1811186.991826 [0002] (w)vmstat_shepherd 1.966 0.345 | |
53 | ... | |
54 | ||
55 | Times are in msec.usec. | |
0f70d8e9 YJ |
56 | |
57 | OPTIONS | |
58 | ------- | |
59 | -D:: | |
60 | --dump-raw-trace=:: | |
61 | Display verbose dump of the sched data. | |
62 | ||
63 | -f:: | |
64 | --force:: | |
65 | Don't complain, do it. | |
66 | ||
67 | -k:: | |
68 | --kwork:: | |
97179d9d | 69 | List of kwork to profile (irq, softirq, workqueue, etc) |
0f70d8e9 YJ |
70 | |
71 | -v:: | |
72 | --verbose:: | |
73 | Be more verbose. (show symbol address, etc) | |
74 | ||
f98919ec YJ |
75 | OPTIONS for 'perf kwork report' |
76 | ---------------------------- | |
77 | ||
daf07d22 YJ |
78 | -b:: |
79 | --use-bpf:: | |
80 | Use BPF to measure kwork runtime | |
81 | ||
f98919ec YJ |
82 | -C:: |
83 | --cpu:: | |
84 | Only show events for the given CPU(s) (comma separated list). | |
85 | ||
86 | -i:: | |
87 | --input:: | |
88 | Input file name. (default: perf.data unless stdin is a fifo) | |
89 | ||
90 | -n:: | |
91 | --name:: | |
92 | Only show events for the given name. | |
93 | ||
94 | -s:: | |
95 | --sort:: | |
96 | Sort by key(s): runtime, max, count | |
97 | ||
98 | -S:: | |
99 | --with-summary:: | |
100 | Show summary with statistics | |
101 | ||
102 | --time:: | |
103 | Only analyze samples within given time window: <start>,<stop>. Times | |
104 | have the format seconds.microseconds. If start is not given (i.e., time | |
105 | string is ',x.y') then analysis starts at the beginning of the file. If | |
106 | stop time is not given (i.e, time string is 'x.y,') then analysis goes | |
107 | to end of file. | |
108 | ||
ad3d9f7a YJ |
109 | OPTIONS for 'perf kwork latency' |
110 | ---------------------------- | |
111 | ||
daf07d22 YJ |
112 | -b:: |
113 | --use-bpf:: | |
114 | Use BPF to measure kwork latency | |
115 | ||
ad3d9f7a YJ |
116 | -C:: |
117 | --cpu:: | |
118 | Only show events for the given CPU(s) (comma separated list). | |
119 | ||
120 | -i:: | |
121 | --input:: | |
122 | Input file name. (default: perf.data unless stdin is a fifo) | |
123 | ||
124 | -n:: | |
125 | --name:: | |
126 | Only show events for the given name. | |
127 | ||
128 | -s:: | |
129 | --sort:: | |
130 | Sort by key(s): avg, max, count | |
131 | ||
132 | --time:: | |
133 | Only analyze samples within given time window: <start>,<stop>. Times | |
134 | have the format seconds.microseconds. If start is not given (i.e., time | |
135 | string is ',x.y') then analysis starts at the beginning of the file. If | |
136 | stop time is not given (i.e, time string is 'x.y,') then analysis goes | |
137 | to end of file. | |
138 | ||
bcc8b3e8 YJ |
139 | OPTIONS for 'perf kwork timehist' |
140 | --------------------------------- | |
141 | ||
142 | -C:: | |
143 | --cpu:: | |
144 | Only show events for the given CPU(s) (comma separated list). | |
145 | ||
146 | -g:: | |
147 | --call-graph:: | |
148 | Display call chains if present (default off). | |
149 | ||
150 | -i:: | |
151 | --input:: | |
152 | Input file name. (default: perf.data unless stdin is a fifo) | |
153 | ||
154 | -k:: | |
155 | --vmlinux=<file>:: | |
156 | Vmlinux pathname | |
157 | ||
158 | -n:: | |
159 | --name:: | |
160 | Only show events for the given name. | |
161 | ||
162 | --kallsyms=<file>:: | |
163 | Kallsyms pathname | |
164 | ||
165 | --max-stack:: | |
166 | Maximum number of functions to display in backtrace, default 5. | |
167 | ||
168 | --symfs=<directory>:: | |
169 | Look for files with symbols relative to this directory. | |
170 | ||
171 | --time:: | |
172 | Only analyze samples within given time window: <start>,<stop>. Times | |
173 | have the format seconds.microseconds. If start is not given (i.e., time | |
174 | string is ',x.y') then analysis starts at the beginning of the file. If | |
175 | stop time is not given (i.e, time string is 'x.y,') then analysis goes | |
176 | to end of file. | |
177 | ||
0f70d8e9 YJ |
178 | SEE ALSO |
179 | -------- | |
180 | linkperf:perf-record[1] |