Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) perf-timechart(1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) =================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4) NAME
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) ----
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6) perf-timechart - Tool to visualize total system behavior during a workload
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) SYNOPSIS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) --------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) [verse]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) 'perf timechart' [<timechart options>] {record} [<record options>]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) DESCRIPTION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) -----------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) There are two variants of perf timechart:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17)   'perf timechart record <command>' to record the system level events
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18)   of an arbitrary workload. By default timechart records only scheduler
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19)   and CPU events (task switches, running times, CPU power states, etc),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20)   but it's possible to record IO (disk, network) activity using -I argument.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22)   'perf timechart' to turn a trace into a Scalable Vector Graphics file,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23)   that can be viewed with popular SVG viewers such as 'Inkscape'. Depending
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24)   on the events in the perf.data file, timechart will contain scheduler/cpu
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25)   events or IO events.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27)   In IO mode, every bar has two charts: upper and lower.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28)   Upper bar shows incoming events (disk reads, ingress network packets).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29)   Lower bar shows outgoing events (disk writes, egress network packets).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30)   There are also poll bars which show how much time application spent
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31)   in poll/epoll/select syscalls.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) TIMECHART OPTIONS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) -----------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) -o::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) --output=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37)         Select the output file (default: output.svg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) -i::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) --input=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40)         Select the input file (default: perf.data unless stdin is a fifo)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) -w::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) --width=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43)         Select the width of the SVG file (default: 1000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) -P::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) --power-only::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46)         Only output the CPU power section of the diagram
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) -T::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) --tasks-only::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49)         Don't output processor state transitions
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) -p::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) --process::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52)         Select the processes to display, by name or PID
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) -f::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) --force::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) 	Don't complain, do it.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) --symfs=<directory>::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57)         Look for files with symbols relative to this directory.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) -n::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) --proc-num::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60)         Print task info for at least given number of tasks.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) -t::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) --topology::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63)         Sort CPUs according to topology.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) --highlight=<duration_nsecs|task_name>::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 	Highlight tasks (using different color) that run more than given
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) 	duration or tasks with given name. If number is given it's interpreted
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 	as number of nanoseconds. If non-numeric string is given it's
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) 	interpreted as task name.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) --io-skip-eagain::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) 	Don't draw EAGAIN IO events.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) --io-min-time=<nsecs>::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 	Draw small events as if they lasted min-time. Useful when you need
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 	to see very small and fast IO. It's possible to specify ms or us
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 	suffix to specify time in milliseconds or microseconds.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 	Default value is 1ms.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) --io-merge-dist=<nsecs>::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 	Merge events that are merge-dist nanoseconds apart.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 	Reduces number of figures on the SVG and makes it more render-friendly.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 	It's possible to specify ms or us suffix to specify time in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) 	milliseconds or microseconds.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 	Default value is 1us.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) RECORD OPTIONS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) --------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) -P::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) --power-only::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87)         Record only power-related events
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) -T::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) --tasks-only::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90)         Record only tasks-related events
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) -I::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) --io-only::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93)         Record only io-related events
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) -g::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) --callchain::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96)         Do call-graph (stack chain/backtrace) recording
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) EXAMPLES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) --------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) $ perf timechart record git pull
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103)   [ perf record: Woken up 13 times to write data ]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104)   [ perf record: Captured and wrote 4.253 MB perf.data (~185801 samples) ]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) $ perf timechart
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)   Written 10.2 seconds of trace to output.svg.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) Record system-wide timechart:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112)   $ perf timechart record
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114)   then generate timechart and highlight 'gcc' tasks:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116)   $ perf timechart --highlight gcc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) Record system-wide IO events:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120)   $ perf timechart record -I
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122)   then generate timechart:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124)   $ perf timechart
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) SEE ALSO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) --------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) linkperf:perf-record[1]