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]
