Commit | Line | Data |
---|---|---|
0a02ad93 | 1 | perf-sched(1) |
ea66536a | 2 | ============= |
0a02ad93 IM |
3 | |
4 | NAME | |
5 | ---- | |
c13f0d3c | 6 | perf-sched - Tool to trace/measure scheduler properties (latencies) |
0a02ad93 IM |
7 | |
8 | SYNOPSIS | |
9 | -------- | |
10 | [verse] | |
49394a2a | 11 | 'perf sched' {record|latency|map|replay|script|timehist} |
0a02ad93 IM |
12 | |
13 | DESCRIPTION | |
14 | ----------- | |
49394a2a | 15 | There are several variants of 'perf sched': |
c13f0d3c IM |
16 | |
17 | 'perf sched record <command>' to record the scheduling events | |
18 | of an arbitrary workload. | |
19 | ||
20 | 'perf sched latency' to report the per task scheduling latencies | |
21 | and other scheduling properties of the workload. | |
22 | ||
e78cb362 JO |
23 | 'perf sched script' to see a detailed trace of the workload that |
24 | was recorded (aliased to 'perf script' for now). | |
c13f0d3c IM |
25 | |
26 | 'perf sched replay' to simulate the workload that was recorded | |
27 | via perf sched record. (this is done by starting up mockup threads | |
28 | that mimic the workload based on the events in the trace. These | |
29 | threads can then replay the timings (CPU runtime and sleep patterns) | |
854c5548 | 30 | of the workload as it occurred when it was recorded - and can repeat |
c13f0d3c | 31 | it a number of times, measuring its performance.) |
0a02ad93 | 32 | |
1eacc94a SB |
33 | 'perf sched map' to print a textual context-switching outline of |
34 | workload captured via perf sched record. Columns stand for | |
35 | individual CPUs, and the two-letter shortcuts stand for tasks that | |
36 | are running on a CPU. A '*' denotes the CPU that had the event, and | |
37 | a dot signals an idle CPU. | |
38 | ||
49394a2a DA |
39 | 'perf sched timehist' provides an analysis of scheduling events. |
40 | ||
41 | Example usage: | |
42 | perf sched record -- sleep 1 | |
43 | perf sched timehist | |
44 | ||
45 | By default it shows the individual schedule events, including the wait | |
46 | time (time between sched-out and next sched-in events for the task), the | |
47 | task scheduling delay (time between wakeup and actually running) and run | |
48 | time for the task: | |
49 | ||
50 | time cpu task name wait time sch delay run time | |
51 | [tid/pid] (msec) (msec) (msec) | |
52 | -------------- ------ -------------------- --------- --------- --------- | |
53 | 79371.874569 [0011] gcc[31949] 0.014 0.000 1.148 | |
54 | 79371.874591 [0010] gcc[31951] 0.000 0.000 0.024 | |
55 | 79371.874603 [0010] migration/10[59] 3.350 0.004 0.011 | |
56 | 79371.874604 [0011] <idle> 1.148 0.000 0.035 | |
57 | 79371.874723 [0005] <idle> 0.016 0.000 1.383 | |
58 | 79371.874746 [0005] gcc[31949] 0.153 0.078 0.022 | |
59 | ... | |
60 | ||
61 | Times are in msec.usec. | |
62 | ||
0a02ad93 IM |
63 | OPTIONS |
64 | ------- | |
1eacc94a SB |
65 | -i:: |
66 | --input=<file>:: | |
efad1415 | 67 | Input file name. (default: perf.data unless stdin is a fifo) |
1eacc94a SB |
68 | |
69 | -v:: | |
70 | --verbose:: | |
71 | Be more verbose. (show symbol address, etc) | |
72 | ||
0a02ad93 IM |
73 | -D:: |
74 | --dump-raw-trace=:: | |
75 | Display verbose dump of the sched data. | |
76 | ||
e9b61e52 SJ |
77 | -f:: |
78 | --force:: | |
79 | Don't complain, do it. | |
80 | ||
99623c62 JO |
81 | OPTIONS for 'perf sched map' |
82 | ---------------------------- | |
83 | ||
84 | --compact:: | |
85 | Show only CPUs with activity. Helps visualizing on high core | |
86 | count systems. | |
87 | ||
73643bb6 JO |
88 | --cpus:: |
89 | Show just entries with activities for the given CPUs. | |
90 | ||
cf294f24 JO |
91 | --color-cpus:: |
92 | Highlight the given cpus. | |
93 | ||
a151a37a JO |
94 | --color-pids:: |
95 | Highlight the given pids. | |
96 | ||
49394a2a DA |
97 | OPTIONS for 'perf sched timehist' |
98 | --------------------------------- | |
99 | -k:: | |
100 | --vmlinux=<file>:: | |
101 | vmlinux pathname | |
102 | ||
103 | --kallsyms=<file>:: | |
104 | kallsyms pathname | |
105 | ||
6c973c90 | 106 | -g:: |
e8103e44 TY |
107 | --call-graph:: |
108 | Display call chains if present (default on). | |
6c973c90 DA |
109 | |
110 | --max-stack:: | |
111 | Maximum number of functions to display in backtrace, default 5. | |
112 | ||
c30d630d DA |
113 | -C=:: |
114 | --cpu=:: | |
115 | Only show events for the given CPU(s) (comma separated list). | |
116 | ||
0f59d7a3 DA |
117 | -p=:: |
118 | --pid=:: | |
119 | Only show events for given process ID (comma separated list). | |
120 | ||
121 | -t=:: | |
122 | --tid=:: | |
123 | Only show events for given thread ID (comma separated list). | |
124 | ||
49394a2a DA |
125 | -s:: |
126 | --summary:: | |
127 | Show only a summary of scheduling by thread with min, max, and average | |
128 | run times (in sec) and relative stddev. | |
129 | ||
130 | -S:: | |
131 | --with-summary:: | |
132 | Show all scheduling events followed by a summary by thread with min, | |
133 | max, and average run times (in sec) and relative stddev. | |
134 | ||
135 | --symfs=<directory>:: | |
136 | Look for files with symbols relative to this directory. | |
137 | ||
a407b067 DA |
138 | -V:: |
139 | --cpu-visual:: | |
140 | Show visual aid for sched switches by CPU: 'i' marks idle time, | |
141 | 's' are scheduler events. | |
142 | ||
fc1469f1 DA |
143 | -w:: |
144 | --wakeups:: | |
145 | Show wakeup events. | |
146 | ||
350f54fa DA |
147 | -M:: |
148 | --migrations:: | |
149 | Show migration events. | |
150 | ||
292c4a8f BG |
151 | -n:: |
152 | --next:: | |
153 | Show next task. | |
154 | ||
07235f84 NK |
155 | -I:: |
156 | --idle-hist:: | |
157 | Show idle-related events only. | |
158 | ||
853b7407 DA |
159 | --time:: |
160 | Only analyze samples within given time window: <start>,<stop>. Times | |
161 | have the format seconds.microseconds. If start is not given (i.e., time | |
162 | string is ',x.y') then analysis starts at the beginning of the file. If | |
163 | stop time is not given (i.e, time string is 'x.y,') then analysis goes | |
164 | to end of file. | |
165 | ||
414e050c NK |
166 | --state:: |
167 | Show task state when it switched out. | |
853b7407 | 168 | |
0a02ad93 IM |
169 | SEE ALSO |
170 | -------- | |
171 | linkperf:perf-record[1] |