Merge tag 'input-for-v6.0-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor...
[linux-2.6-microblaze.git] / tools / perf / Documentation / perf-kwork.txt
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]
11 'perf kwork' {record}
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
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
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::
69         List of kwork to profile (irq, softirq, workqueue, etc)
70
71 -v::
72 --verbose::
73         Be more verbose. (show symbol address, etc)
74
75 OPTIONS 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
109 OPTIONS 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
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
178 SEE ALSO
179 --------
180 linkperf:perf-record[1]