123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- 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]
|