| perf-timechart(1) | 
| ================= | 
|   | 
| NAME | 
| ---- | 
| perf-timechart - Tool to visualize total system behavior during a workload | 
|   | 
| SYNOPSIS | 
| -------- | 
| [verse] | 
| 'perf timechart' [<timechart options>] {record} [<record options>] | 
|   | 
| DESCRIPTION | 
| ----------- | 
| There are two variants of perf timechart: | 
|   | 
|   'perf timechart record <command>' to record the system level events | 
|   of an arbitrary workload. By default timechart records only scheduler | 
|   and CPU events (task switches, running times, CPU power states, etc), | 
|   but it's possible to record IO (disk, network) activity using -I argument. | 
|   | 
|   'perf timechart' to turn a trace into a Scalable Vector Graphics file, | 
|   that can be viewed with popular SVG viewers such as 'Inkscape'. Depending | 
|   on the events in the perf.data file, timechart will contain scheduler/cpu | 
|   events or IO events. | 
|   | 
|   In IO mode, every bar has two charts: upper and lower. | 
|   Upper bar shows incoming events (disk reads, ingress network packets). | 
|   Lower bar shows outgoing events (disk writes, egress network packets). | 
|   There are also poll bars which show how much time application spent | 
|   in poll/epoll/select syscalls. | 
|   | 
| TIMECHART OPTIONS | 
| ----------------- | 
| -o:: | 
| --output=:: | 
|         Select the output file (default: output.svg) | 
| -i:: | 
| --input=:: | 
|         Select the input file (default: perf.data unless stdin is a fifo) | 
| -w:: | 
| --width=:: | 
|         Select the width of the SVG file (default: 1000) | 
| -P:: | 
| --power-only:: | 
|         Only output the CPU power section of the diagram | 
| -T:: | 
| --tasks-only:: | 
|         Don't output processor state transitions | 
| -p:: | 
| --process:: | 
|         Select the processes to display, by name or PID | 
| -f:: | 
| --force:: | 
|     Don't complain, do it. | 
| --symfs=<directory>:: | 
|         Look for files with symbols relative to this directory. | 
| -n:: | 
| --proc-num:: | 
|         Print task info for at least given number of tasks. | 
| -t:: | 
| --topology:: | 
|         Sort CPUs according to topology. | 
| --highlight=<duration_nsecs|task_name>:: | 
|     Highlight tasks (using different color) that run more than given | 
|     duration or tasks with given name. If number is given it's interpreted | 
|     as number of nanoseconds. If non-numeric string is given it's | 
|     interpreted as task name. | 
| --io-skip-eagain:: | 
|     Don't draw EAGAIN IO events. | 
| --io-min-time=<nsecs>:: | 
|     Draw small events as if they lasted min-time. Useful when you need | 
|     to see very small and fast IO. It's possible to specify ms or us | 
|     suffix to specify time in milliseconds or microseconds. | 
|     Default value is 1ms. | 
| --io-merge-dist=<nsecs>:: | 
|     Merge events that are merge-dist nanoseconds apart. | 
|     Reduces number of figures on the SVG and makes it more render-friendly. | 
|     It's possible to specify ms or us suffix to specify time in | 
|     milliseconds or microseconds. | 
|     Default value is 1us. | 
|   | 
| RECORD OPTIONS | 
| -------------- | 
| -P:: | 
| --power-only:: | 
|         Record only power-related events | 
| -T:: | 
| --tasks-only:: | 
|         Record only tasks-related events | 
| -I:: | 
| --io-only:: | 
|         Record only io-related events | 
| -g:: | 
| --callchain:: | 
|         Do call-graph (stack chain/backtrace) recording | 
|   | 
| EXAMPLES | 
| -------- | 
|   | 
| $ perf timechart record git pull | 
|   | 
|   [ perf record: Woken up 13 times to write data ] | 
|   [ perf record: Captured and wrote 4.253 MB perf.data (~185801 samples) ] | 
|   | 
| $ perf timechart | 
|   | 
|   Written 10.2 seconds of trace to output.svg. | 
|   | 
| Record system-wide timechart: | 
|   | 
|   $ perf timechart record | 
|   | 
|   then generate timechart and highlight 'gcc' tasks: | 
|   | 
|   $ perf timechart --highlight gcc | 
|   | 
| Record system-wide IO events: | 
|   | 
|   $ perf timechart record -I | 
|   | 
|   then generate timechart: | 
|   | 
|   $ perf timechart | 
|   | 
| SEE ALSO | 
| -------- | 
| linkperf:perf-record[1] |