xref: /linux/tools/perf/Documentation/perf-kwork.txt (revision 9f2c9170934eace462499ba0bfe042cc72900173)
1perf-kowrk(1)
2=============
3
4NAME
5----
6perf-kwork - Tool to trace/measure kernel work properties (latencies)
7
8SYNOPSIS
9--------
10[verse]
11'perf kwork' {record}
12
13DESCRIPTION
14-----------
15There are several variants of 'perf kwork':
16
17  'perf kwork record <command>' to record the kernel work
18  of an arbitrary workload.
19
20  'perf kwork report' to report the per kwork runtime.
21
22  'perf kwork latency' to report the per kwork latencies.
23
24  'perf kwork timehist' provides an analysis of kernel work events.
25
26    Example usage:
27        perf kwork record -- sleep 1
28        perf kwork report
29        perf kwork report -b
30        perf kwork latency
31        perf kwork latency -b
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.
56
57OPTIONS
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::
69	List of kwork to profile (irq, softirq, workqueue, etc)
70
71-v::
72--verbose::
73	Be more verbose. (show symbol address, etc)
74
75OPTIONS for 'perf kwork report'
76----------------------------
77
78-b::
79--use-bpf::
80	Use BPF to measure kwork runtime
81
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
109OPTIONS for 'perf kwork latency'
110----------------------------
111
112-b::
113--use-bpf::
114	Use BPF to measure kwork latency
115
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
139OPTIONS 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
178SEE ALSO
179--------
180linkperf:perf-record[1]
181