215 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			215 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| perf-kwork(1)
 | |
| =============
 | |
| 
 | |
| NAME
 | |
| ----
 | |
| perf-kwork - Tool to trace/measure kernel work properties (latencies)
 | |
| 
 | |
| SYNOPSIS
 | |
| --------
 | |
| [verse]
 | |
| 'perf kwork' {record|report|latency|timehist|top}
 | |
| 
 | |
| DESCRIPTION
 | |
| -----------
 | |
| There are several variants of 'perf kwork':
 | |
| 
 | |
|   'perf kwork record <command>' to record the kernel work
 | |
|   of an arbitrary workload.
 | |
| 
 | |
|   'perf kwork report' to report the per kwork runtime.
 | |
| 
 | |
|   'perf kwork latency' to report the per kwork latencies.
 | |
| 
 | |
|   'perf kwork timehist' provides an analysis of kernel work events.
 | |
| 
 | |
|   'perf kwork top' to report the task cpu usage.
 | |
| 
 | |
|     Example usage:
 | |
|         perf kwork record -- sleep 1
 | |
|         perf kwork report
 | |
|         perf kwork report -b
 | |
|         perf kwork latency
 | |
|         perf kwork latency -b
 | |
|         perf kwork timehist
 | |
|         perf kwork top
 | |
|         perf kwork top -b
 | |
| 
 | |
|    By default it shows the individual work events such as irq, workqueue,
 | |
|    including the run time and delay (time between raise and actually entry):
 | |
| 
 | |
|       Runtime start      Runtime end        Cpu     Kwork name                 Runtime     Delaytime
 | |
|                                                     (TYPE)NAME:NUM             (msec)      (msec)
 | |
|    -----------------  -----------------  ------  -------------------------  ----------  ----------
 | |
|       1811186.976062     1811186.976327  [0000]  (s)RCU:9                        0.266       0.114
 | |
|       1811186.978452     1811186.978547  [0000]  (s)SCHED:7                      0.095       0.171
 | |
|       1811186.980327     1811186.980490  [0000]  (s)SCHED:7                      0.162       0.083
 | |
|       1811186.981221     1811186.981271  [0000]  (s)SCHED:7                      0.050       0.077
 | |
|       1811186.984267     1811186.984318  [0000]  (s)SCHED:7                      0.051       0.075
 | |
|       1811186.987252     1811186.987315  [0000]  (s)SCHED:7                      0.063       0.081
 | |
|       1811186.987785     1811186.987843  [0006]  (s)RCU:9                        0.058       0.645
 | |
|       1811186.988319     1811186.988383  [0000]  (s)SCHED:7                      0.064       0.143
 | |
|       1811186.989404     1811186.989607  [0002]  (s)TIMER:1                      0.203       0.111
 | |
|       1811186.989660     1811186.989732  [0002]  (s)SCHED:7                      0.072       0.310
 | |
|       1811186.991295     1811186.991407  [0002]  eth0:10                         0.112
 | |
|       1811186.991639     1811186.991734  [0002]  (s)NET_RX:3                     0.095       0.277
 | |
|       1811186.989860     1811186.991826  [0002]  (w)vmstat_shepherd              1.966       0.345
 | |
|     ...
 | |
| 
 | |
|    Times are in msec.usec.
 | |
| 
 | |
| OPTIONS
 | |
| -------
 | |
| -D::
 | |
| --dump-raw-trace=::
 | |
| 	Display verbose dump of the sched data.
 | |
| 
 | |
| -f::
 | |
| --force::
 | |
| 	Don't complain, do it.
 | |
| 
 | |
| -k::
 | |
| --kwork::
 | |
| 	List of kwork to profile (irq, softirq, workqueue, sched, etc)
 | |
| 
 | |
| -v::
 | |
| --verbose::
 | |
| 	Be more verbose. (show symbol address, etc)
 | |
| 
 | |
| OPTIONS for 'perf kwork report'
 | |
| ----------------------------
 | |
| 
 | |
| -b::
 | |
| --use-bpf::
 | |
| 	Use BPF to measure kwork runtime
 | |
| 
 | |
| -C::
 | |
| --cpu::
 | |
| 	Only show events for the given CPU(s) (comma separated list).
 | |
| 
 | |
| -i::
 | |
| --input::
 | |
| 	Input file name. (default: perf.data unless stdin is a fifo)
 | |
| 
 | |
| -n::
 | |
| --name::
 | |
| 	Only show events for the given name.
 | |
| 
 | |
| -s::
 | |
| --sort::
 | |
| 	Sort by key(s): runtime, max, count
 | |
| 
 | |
| -S::
 | |
| --with-summary::
 | |
| 	Show summary with statistics
 | |
| 
 | |
| --time::
 | |
| 	Only analyze samples within given time window: <start>,<stop>. Times
 | |
| 	have the format seconds.microseconds. If start is not given (i.e., time
 | |
| 	string is ',x.y') then analysis starts at the beginning of the file. If
 | |
| 	stop time is not given (i.e, time string is 'x.y,') then analysis goes
 | |
| 	to end of file.
 | |
| 
 | |
| OPTIONS for 'perf kwork latency'
 | |
| ----------------------------
 | |
| 
 | |
| -b::
 | |
| --use-bpf::
 | |
| 	Use BPF to measure kwork latency
 | |
| 
 | |
| -C::
 | |
| --cpu::
 | |
| 	Only show events for the given CPU(s) (comma separated list).
 | |
| 
 | |
| -i::
 | |
| --input::
 | |
| 	Input file name. (default: perf.data unless stdin is a fifo)
 | |
| 
 | |
| -n::
 | |
| --name::
 | |
| 	Only show events for the given name.
 | |
| 
 | |
| -s::
 | |
| --sort::
 | |
| 	Sort by key(s): avg, max, count
 | |
| 
 | |
| --time::
 | |
| 	Only analyze samples within given time window: <start>,<stop>. Times
 | |
| 	have the format seconds.microseconds. If start is not given (i.e., time
 | |
| 	string is ',x.y') then analysis starts at the beginning of the file. If
 | |
| 	stop time is not given (i.e, time string is 'x.y,') then analysis goes
 | |
| 	to end of file.
 | |
| 
 | |
| OPTIONS for 'perf kwork timehist'
 | |
| ---------------------------------
 | |
| 
 | |
| -C::
 | |
| --cpu::
 | |
| 	Only show events for the given CPU(s) (comma separated list).
 | |
| 
 | |
| -g::
 | |
| --call-graph::
 | |
| 	Display call chains if present (default off).
 | |
| 
 | |
| -i::
 | |
| --input::
 | |
| 	Input file name. (default: perf.data unless stdin is a fifo)
 | |
| 
 | |
| -k::
 | |
| --vmlinux=<file>::
 | |
| 	Vmlinux pathname
 | |
| 
 | |
| -n::
 | |
| --name::
 | |
| 	Only show events for the given name.
 | |
| 
 | |
| --kallsyms=<file>::
 | |
| 	Kallsyms pathname
 | |
| 
 | |
| --max-stack::
 | |
| 	Maximum number of functions to display in backtrace, default 5.
 | |
| 
 | |
| --symfs=<directory>::
 | |
|     Look for files with symbols relative to this directory.
 | |
| 
 | |
| --time::
 | |
| 	Only analyze samples within given time window: <start>,<stop>. Times
 | |
| 	have the format seconds.microseconds. If start is not given (i.e., time
 | |
| 	string is ',x.y') then analysis starts at the beginning of the file. If
 | |
| 	stop time is not given (i.e, time string is 'x.y,') then analysis goes
 | |
| 	to end of file.
 | |
| 
 | |
| OPTIONS for 'perf kwork top'
 | |
| ---------------------------------
 | |
| 
 | |
| -b::
 | |
| --use-bpf::
 | |
| 	Use BPF to measure task cpu usage.
 | |
| 
 | |
| -C::
 | |
| --cpu::
 | |
| 	Only show events for the given CPU(s) (comma separated list).
 | |
| 
 | |
| -i::
 | |
| --input::
 | |
| 	Input file name. (default: perf.data unless stdin is a fifo)
 | |
| 
 | |
| -n::
 | |
| --name::
 | |
| 	Only show events for the given name.
 | |
| 
 | |
| -s::
 | |
| --sort::
 | |
| 	Sort by key(s): rate, runtime, tid
 | |
| 
 | |
| --time::
 | |
| 	Only analyze samples within given time window: <start>,<stop>. Times
 | |
| 	have the format seconds.microseconds. If start is not given (i.e., time
 | |
| 	string is ',x.y') then analysis starts at the beginning of the file. If
 | |
| 	stop time is not given (i.e, time string is 'x.y,') then analysis goes
 | |
| 	to end of file.
 | |
| 
 | |
| SEE ALSO
 | |
| --------
 | |
| linkperf:perf-record[1]
 |