149 lines
4.1 KiB
Plaintext
149 lines
4.1 KiB
Plaintext
|
perf-ftrace(1)
|
||
|
==============
|
||
|
|
||
|
NAME
|
||
|
----
|
||
|
perf-ftrace - simple wrapper for kernel's ftrace functionality
|
||
|
|
||
|
|
||
|
SYNOPSIS
|
||
|
--------
|
||
|
[verse]
|
||
|
'perf ftrace' {trace|latency} <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.
|
||
|
|
||
|
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.
|
||
|
|
||
|
|
||
|
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.
|
||
|
|
||
|
|
||
|
SEE ALSO
|
||
|
--------
|
||
|
linkperf:perf-record[1], linkperf:perf-trace[1]
|