197 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			197 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| perf-ftrace(1)
 | |
| ==============
 | |
| 
 | |
| NAME
 | |
| ----
 | |
| perf-ftrace - simple wrapper for kernel's ftrace functionality
 | |
| 
 | |
| 
 | |
| SYNOPSIS
 | |
| --------
 | |
| [verse]
 | |
| 'perf ftrace' {trace|latency|profile} <command>
 | |
| 
 | |
| DESCRIPTION
 | |
| -----------
 | |
| The 'perf ftrace' command provides a collection of subcommands which use
 | |
| kernel's ftrace infrastructure.
 | |
| 
 | |
|   'perf ftrace trace' is a simple wrapper of the ftrace.  It only supports
 | |
|   single thread tracing currently and just reads trace_pipe in text and then
 | |
|   write it to stdout.
 | |
| 
 | |
|   'perf ftrace latency' calculates execution latency of a given function
 | |
|   (optionally with BPF) and display it as a histogram.
 | |
| 
 | |
|   'perf ftrace profile' show a execution profile for each function including
 | |
|   total, average, max time and the number of calls.
 | |
| 
 | |
| The following options apply to perf ftrace.
 | |
| 
 | |
| COMMON OPTIONS
 | |
| --------------
 | |
| 
 | |
| -p::
 | |
| --pid=::
 | |
| 	Trace on existing process id (comma separated list).
 | |
| 
 | |
| --tid=::
 | |
| 	Trace on existing thread id (comma separated list).
 | |
| 
 | |
| -a::
 | |
| --all-cpus::
 | |
| 	Force system-wide collection.  Scripts run without a <command>
 | |
| 	normally use -a by default, while scripts run with a <command>
 | |
| 	normally don't - this option allows the latter to be run in
 | |
| 	system-wide mode.
 | |
| 
 | |
| -C::
 | |
| --cpu=::
 | |
| 	Only trace for the list of CPUs provided.  Multiple CPUs can
 | |
| 	be provided as a comma separated list with no space like: 0,1.
 | |
| 	Ranges of CPUs are specified with -: 0-2.
 | |
| 	Default is to trace on all online CPUs.
 | |
| 
 | |
| -v::
 | |
| --verbose::
 | |
|         Increase the verbosity level.
 | |
| 
 | |
| 
 | |
| OPTIONS for 'perf ftrace trace'
 | |
| -------------------------------
 | |
| 
 | |
| -t::
 | |
| --tracer=::
 | |
| 	Tracer to use when neither -G nor -F option is not
 | |
| 	specified: function_graph or function.
 | |
| 
 | |
| -F::
 | |
| --funcs::
 | |
|         List available functions to trace. It accepts a pattern to
 | |
|         only list interested functions.
 | |
| 
 | |
| -D::
 | |
| --delay::
 | |
| 	Time (ms) to wait before starting tracing after program start.
 | |
| 
 | |
| -m::
 | |
| --buffer-size::
 | |
| 	Set the size of per-cpu tracing buffer, <size> is expected to
 | |
| 	be a number with appended unit character - B/K/M/G.
 | |
| 
 | |
| --inherit::
 | |
| 	Trace children processes spawned by our target.
 | |
| 
 | |
| -T::
 | |
| --trace-funcs=::
 | |
| 	Select function tracer and set function filter on the given
 | |
| 	function (or a glob pattern). Multiple functions can be given
 | |
| 	by using this option more than once. The function argument also
 | |
| 	can be a glob pattern. It will be passed to 'set_ftrace_filter'
 | |
| 	in tracefs.
 | |
| 
 | |
| -N::
 | |
| --notrace-funcs=::
 | |
| 	Select function tracer and do not trace functions given by the
 | |
| 	argument.  Like -T option, this can be used more than once to
 | |
| 	specify multiple functions (or glob patterns).  It will be
 | |
| 	passed to 'set_ftrace_notrace' in tracefs.
 | |
| 
 | |
| --func-opts::
 | |
| 	List of options allowed to set:
 | |
| 
 | |
| 	  - call-graph - Display kernel stack trace for function tracer.
 | |
| 	  - irq-info   - Display irq context info for function tracer.
 | |
| 
 | |
| -G::
 | |
| --graph-funcs=::
 | |
| 	Select function_graph tracer and set graph filter on the given
 | |
| 	function (or a glob pattern). This is useful to trace for
 | |
| 	functions executed from the given function. This can be used more
 | |
| 	than once to specify multiple functions. It will be passed to
 | |
| 	'set_graph_function' in tracefs.
 | |
| 
 | |
| -g::
 | |
| --nograph-funcs=::
 | |
| 	Select function_graph tracer and set graph notrace filter on the
 | |
| 	given function (or a glob pattern). Like -G option, this is useful
 | |
| 	for the function_graph tracer only and disables tracing for function
 | |
| 	executed from the given function. This can be used more than once to
 | |
| 	specify multiple functions. It will be passed to 'set_graph_notrace'
 | |
| 	in tracefs.
 | |
| 
 | |
| --graph-opts::
 | |
| 	List of options allowed to set:
 | |
| 
 | |
| 	  - nosleep-time - Measure on-CPU time only for function_graph tracer.
 | |
| 	  - noirqs       - Ignore functions that happen inside interrupt.
 | |
| 	  - verbose      - Show process names, PIDs, timestamps, etc.
 | |
| 	  - thresh=<n>   - Setup trace duration threshold in microseconds.
 | |
| 	  - depth=<n>    - Set max depth for function graph tracer to follow.
 | |
| 	  - tail         - Print function name at the end.
 | |
| 
 | |
| 
 | |
| OPTIONS for 'perf ftrace latency'
 | |
| ---------------------------------
 | |
| 
 | |
| -T::
 | |
| --trace-funcs=::
 | |
| 	Set the function name to get the histogram.  Unlike perf ftrace trace,
 | |
| 	it only allows single function to calculate the histogram.
 | |
| 
 | |
| -b::
 | |
| --use-bpf::
 | |
| 	Use BPF to measure function latency instead of using the ftrace (it
 | |
| 	uses function_graph tracer internally).
 | |
| 
 | |
| -n::
 | |
| --use-nsec::
 | |
| 	Use nano-second instead of micro-second as a base unit of the histogram.
 | |
| 
 | |
| 
 | |
| OPTIONS for 'perf ftrace profile'
 | |
| ---------------------------------
 | |
| 
 | |
| -T::
 | |
| --trace-funcs=::
 | |
| 	Set function filter on the given function (or a glob pattern).
 | |
| 	Multiple functions can be given by using this option more than once.
 | |
| 	The function argument also can be a glob pattern. It will be passed
 | |
| 	to 'set_ftrace_filter' in tracefs.
 | |
| 
 | |
| -N::
 | |
| --notrace-funcs=::
 | |
| 	Do not trace functions given by the argument.  Like -T option, this
 | |
| 	can be used more than once to specify multiple functions (or glob
 | |
| 	patterns).  It will be passed to 'set_ftrace_notrace' in tracefs.
 | |
| 
 | |
| -G::
 | |
| --graph-funcs=::
 | |
| 	Set graph filter on the given function (or a glob pattern). This is
 | |
| 	useful to trace for functions executed from the given function. This
 | |
| 	can be used more than once to specify multiple functions. It will be
 | |
| 	passed to 'set_graph_function' in tracefs.
 | |
| 
 | |
| -g::
 | |
| --nograph-funcs=::
 | |
| 	Set graph notrace filter on the given function (or a glob pattern).
 | |
| 	Like -G option, this is useful for the function_graph tracer only and
 | |
| 	disables tracing for function executed from the given function. This
 | |
| 	can be used more than once to specify multiple functions. It will be
 | |
| 	passed to 'set_graph_notrace' in tracefs.
 | |
| 
 | |
| -m::
 | |
| --buffer-size::
 | |
| 	Set the size of per-cpu tracing buffer, <size> is expected to
 | |
| 	be a number with appended unit character - B/K/M/G.
 | |
| 
 | |
| -s::
 | |
| --sort=::
 | |
| 	Sort the result by the given field.  Available values are:
 | |
| 	total, avg, max, count, name.  Default is 'total'.
 | |
| 
 | |
| 
 | |
| SEE ALSO
 | |
| --------
 | |
| linkperf:perf-record[1], linkperf:perf-trace[1]
 |