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