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.
171 lines
4.6 KiB
171 lines
4.6 KiB
perf-sched(1) |
|
============= |
|
|
|
NAME |
|
---- |
|
perf-sched - Tool to trace/measure scheduler properties (latencies) |
|
|
|
SYNOPSIS |
|
-------- |
|
[verse] |
|
'perf sched' {record|latency|map|replay|script|timehist} |
|
|
|
DESCRIPTION |
|
----------- |
|
There are several variants of 'perf sched': |
|
|
|
'perf sched record <command>' to record the scheduling events |
|
of an arbitrary workload. |
|
|
|
'perf sched latency' to report the per task scheduling latencies |
|
and other scheduling properties of the workload. |
|
|
|
'perf sched script' to see a detailed trace of the workload that |
|
was recorded (aliased to 'perf script' for now). |
|
|
|
'perf sched replay' to simulate the workload that was recorded |
|
via perf sched record. (this is done by starting up mockup threads |
|
that mimic the workload based on the events in the trace. These |
|
threads can then replay the timings (CPU runtime and sleep patterns) |
|
of the workload as it occurred when it was recorded - and can repeat |
|
it a number of times, measuring its performance.) |
|
|
|
'perf sched map' to print a textual context-switching outline of |
|
workload captured via perf sched record. Columns stand for |
|
individual CPUs, and the two-letter shortcuts stand for tasks that |
|
are running on a CPU. A '*' denotes the CPU that had the event, and |
|
a dot signals an idle CPU. |
|
|
|
'perf sched timehist' provides an analysis of scheduling events. |
|
|
|
Example usage: |
|
perf sched record -- sleep 1 |
|
perf sched timehist |
|
|
|
By default it shows the individual schedule events, including the wait |
|
time (time between sched-out and next sched-in events for the task), the |
|
task scheduling delay (time between wakeup and actually running) and run |
|
time for the task: |
|
|
|
time cpu task name wait time sch delay run time |
|
[tid/pid] (msec) (msec) (msec) |
|
-------------- ------ -------------------- --------- --------- --------- |
|
79371.874569 [0011] gcc[31949] 0.014 0.000 1.148 |
|
79371.874591 [0010] gcc[31951] 0.000 0.000 0.024 |
|
79371.874603 [0010] migration/10[59] 3.350 0.004 0.011 |
|
79371.874604 [0011] <idle> 1.148 0.000 0.035 |
|
79371.874723 [0005] <idle> 0.016 0.000 1.383 |
|
79371.874746 [0005] gcc[31949] 0.153 0.078 0.022 |
|
... |
|
|
|
Times are in msec.usec. |
|
|
|
OPTIONS |
|
------- |
|
-i:: |
|
--input=<file>:: |
|
Input file name. (default: perf.data unless stdin is a fifo) |
|
|
|
-v:: |
|
--verbose:: |
|
Be more verbose. (show symbol address, etc) |
|
|
|
-D:: |
|
--dump-raw-trace=:: |
|
Display verbose dump of the sched data. |
|
|
|
-f:: |
|
--force:: |
|
Don't complain, do it. |
|
|
|
OPTIONS for 'perf sched map' |
|
---------------------------- |
|
|
|
--compact:: |
|
Show only CPUs with activity. Helps visualizing on high core |
|
count systems. |
|
|
|
--cpus:: |
|
Show just entries with activities for the given CPUs. |
|
|
|
--color-cpus:: |
|
Highlight the given cpus. |
|
|
|
--color-pids:: |
|
Highlight the given pids. |
|
|
|
OPTIONS for 'perf sched timehist' |
|
--------------------------------- |
|
-k:: |
|
--vmlinux=<file>:: |
|
vmlinux pathname |
|
|
|
--kallsyms=<file>:: |
|
kallsyms pathname |
|
|
|
-g:: |
|
--call-graph:: |
|
Display call chains if present (default on). |
|
|
|
--max-stack:: |
|
Maximum number of functions to display in backtrace, default 5. |
|
|
|
-C=:: |
|
--cpu=:: |
|
Only show events for the given CPU(s) (comma separated list). |
|
|
|
-p=:: |
|
--pid=:: |
|
Only show events for given process ID (comma separated list). |
|
|
|
-t=:: |
|
--tid=:: |
|
Only show events for given thread ID (comma separated list). |
|
|
|
-s:: |
|
--summary:: |
|
Show only a summary of scheduling by thread with min, max, and average |
|
run times (in sec) and relative stddev. |
|
|
|
-S:: |
|
--with-summary:: |
|
Show all scheduling events followed by a summary by thread with min, |
|
max, and average run times (in sec) and relative stddev. |
|
|
|
--symfs=<directory>:: |
|
Look for files with symbols relative to this directory. |
|
|
|
-V:: |
|
--cpu-visual:: |
|
Show visual aid for sched switches by CPU: 'i' marks idle time, |
|
's' are scheduler events. |
|
|
|
-w:: |
|
--wakeups:: |
|
Show wakeup events. |
|
|
|
-M:: |
|
--migrations:: |
|
Show migration events. |
|
|
|
-n:: |
|
--next:: |
|
Show next task. |
|
|
|
-I:: |
|
--idle-hist:: |
|
Show idle-related events only. |
|
|
|
--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. |
|
|
|
--state:: |
|
Show task state when it switched out. |
|
|
|
SEE ALSO |
|
-------- |
|
linkperf:perf-record[1]
|
|
|