1151750ceSArjan van de Venperf-timechart(1) 2151750ceSArjan van de Ven================= 3151750ceSArjan van de Ven 4151750ceSArjan van de VenNAME 5151750ceSArjan van de Ven---- 6151750ceSArjan van de Venperf-timechart - Tool to visualize total system behavior during a workload 7151750ceSArjan van de Ven 8151750ceSArjan van de VenSYNOPSIS 9151750ceSArjan van de Ven-------- 10151750ceSArjan van de Ven[verse] 11367b3152SStanislav Fomichev'perf timechart' [<timechart options>] {record} [<record options>] 12151750ceSArjan van de Ven 13151750ceSArjan van de VenDESCRIPTION 14151750ceSArjan van de Ven----------- 15151750ceSArjan van de VenThere are two variants of perf timechart: 16151750ceSArjan van de Ven 17151750ceSArjan van de Ven 'perf timechart record <command>' to record the system level events 18b97b59b9SStanislav Fomichev of an arbitrary workload. By default timechart records only scheduler 19b97b59b9SStanislav Fomichev and CPU events (task switches, running times, CPU power states, etc), 20b97b59b9SStanislav Fomichev but it's possible to record IO (disk, network) activity using -I argument. 21151750ceSArjan van de Ven 22151750ceSArjan van de Ven 'perf timechart' to turn a trace into a Scalable Vector Graphics file, 23b97b59b9SStanislav Fomichev that can be viewed with popular SVG viewers such as 'Inkscape'. Depending 24b97b59b9SStanislav Fomichev on the events in the perf.data file, timechart will contain scheduler/cpu 25b97b59b9SStanislav Fomichev events or IO events. 26b97b59b9SStanislav Fomichev 27b97b59b9SStanislav Fomichev In IO mode, every bar has two charts: upper and lower. 28b97b59b9SStanislav Fomichev Upper bar shows incoming events (disk reads, ingress network packets). 29b97b59b9SStanislav Fomichev Lower bar shows outgoing events (disk writes, egress network packets). 30b97b59b9SStanislav Fomichev There are also poll bars which show how much time application spent 31b97b59b9SStanislav Fomichev in poll/epoll/select syscalls. 32151750ceSArjan van de Ven 33367b3152SStanislav FomichevTIMECHART OPTIONS 34367b3152SStanislav Fomichev----------------- 35151750ceSArjan van de Ven-o:: 36151750ceSArjan van de Ven--output=:: 37151750ceSArjan van de Ven Select the output file (default: output.svg) 38151750ceSArjan van de Ven-i:: 39151750ceSArjan van de Ven--input=:: 40efad1415SRobert Richter Select the input file (default: perf.data unless stdin is a fifo) 415094b655SArjan van de Ven-w:: 425094b655SArjan van de Ven--width=:: 435094b655SArjan van de Ven Select the width of the SVG file (default: 1000) 44bbe2987bSArjan van de Ven-P:: 4539a90a8eSArjan van de Ven--power-only:: 4639a90a8eSArjan van de Ven Only output the CPU power section of the diagram 47c87097d3SStanislav Fomichev-T:: 48c87097d3SStanislav Fomichev--tasks-only:: 49c87097d3SStanislav Fomichev Don't output processor state transitions 50bbe2987bSArjan van de Ven-p:: 51bbe2987bSArjan van de Ven--process:: 52bbe2987bSArjan van de Ven Select the processes to display, by name or PID 53151750ceSArjan van de Ven 54ec5761eaSDavid Ahern--symfs=<directory>:: 55ec5761eaSDavid Ahern Look for files with symbols relative to this directory. 5654874e32SStanislav Fomichev-n:: 5754874e32SStanislav Fomichev--proc-num:: 5854874e32SStanislav Fomichev Print task info for at least given number of tasks. 59c5079997SStanislav Fomichev-t:: 60c5079997SStanislav Fomichev--topology:: 61c5079997SStanislav Fomichev Sort CPUs according to topology. 62e57a2dffSStanislav Fomichev--highlight=<duration_nsecs|task_name>:: 63e57a2dffSStanislav Fomichev Highlight tasks (using different color) that run more than given 64e57a2dffSStanislav Fomichev duration or tasks with given name. If number is given it's interpreted 65e57a2dffSStanislav Fomichev as number of nanoseconds. If non-numeric string is given it's 66e57a2dffSStanislav Fomichev interpreted as task name. 67d243144aSStanislav Fomichev--io-skip-eagain:: 68d243144aSStanislav Fomichev Don't draw EAGAIN IO events. 69d243144aSStanislav Fomichev--io-min-time=<nsecs>:: 70d243144aSStanislav Fomichev Draw small events as if they lasted min-time. Useful when you need 71d243144aSStanislav Fomichev to see very small and fast IO. It's possible to specify ms or us 72d243144aSStanislav Fomichev suffix to specify time in milliseconds or microseconds. 73d243144aSStanislav Fomichev Default value is 1ms. 74d243144aSStanislav Fomichev--io-merge-dist=<nsecs>:: 75d243144aSStanislav Fomichev Merge events that are merge-dist nanoseconds apart. 76d243144aSStanislav Fomichev Reduces number of figures on the SVG and makes it more render-friendly. 77d243144aSStanislav Fomichev It's possible to specify ms or us suffix to specify time in 78d243144aSStanislav Fomichev milliseconds or microseconds. 79d243144aSStanislav Fomichev Default value is 1us. 8054874e32SStanislav Fomichev 81367b3152SStanislav FomichevRECORD OPTIONS 82367b3152SStanislav Fomichev-------------- 83367b3152SStanislav Fomichev-P:: 84367b3152SStanislav Fomichev--power-only:: 85367b3152SStanislav Fomichev Record only power-related events 86367b3152SStanislav Fomichev-T:: 87367b3152SStanislav Fomichev--tasks-only:: 88367b3152SStanislav Fomichev Record only tasks-related events 89b97b59b9SStanislav Fomichev-I:: 90b97b59b9SStanislav Fomichev--io-only:: 91b97b59b9SStanislav Fomichev Record only io-related events 926f8d67faSStanislav Fomichev-g:: 936f8d67faSStanislav Fomichev--callchain:: 946f8d67faSStanislav Fomichev Do call-graph (stack chain/backtrace) recording 95367b3152SStanislav Fomichev 96f48e00ceSStanislav FomichevEXAMPLES 97f48e00ceSStanislav Fomichev-------- 98f48e00ceSStanislav Fomichev 99f48e00ceSStanislav Fomichev$ perf timechart record git pull 100f48e00ceSStanislav Fomichev 101f48e00ceSStanislav Fomichev [ perf record: Woken up 13 times to write data ] 102f48e00ceSStanislav Fomichev [ perf record: Captured and wrote 4.253 MB perf.data (~185801 samples) ] 103f48e00ceSStanislav Fomichev 104f48e00ceSStanislav Fomichev$ perf timechart 105f48e00ceSStanislav Fomichev 106f48e00ceSStanislav Fomichev Written 10.2 seconds of trace to output.svg. 107f48e00ceSStanislav Fomichev 108f48e00ceSStanislav FomichevRecord system-wide timechart: 109f48e00ceSStanislav Fomichev 110f48e00ceSStanislav Fomichev $ perf timechart record 111f48e00ceSStanislav Fomichev 112f48e00ceSStanislav Fomichev then generate timechart and highlight 'gcc' tasks: 113f48e00ceSStanislav Fomichev 114f48e00ceSStanislav Fomichev $ perf timechart --highlight gcc 115f48e00ceSStanislav Fomichev 116b97b59b9SStanislav FomichevRecord system-wide IO events: 117b97b59b9SStanislav Fomichev 118b97b59b9SStanislav Fomichev $ perf timechart record -I 119b97b59b9SStanislav Fomichev 120b97b59b9SStanislav Fomichev then generate timechart: 121b97b59b9SStanislav Fomichev 122b97b59b9SStanislav Fomichev $ perf timechart 123b97b59b9SStanislav Fomichev 124151750ceSArjan van de VenSEE ALSO 125151750ceSArjan van de Ven-------- 126151750ceSArjan van de Venlinkperf:perf-record[1] 127