perf-ftrace(1)
==============

NAME
----
perf-ftrace - simple wrapper for kernel's ftrace functionality


SYNOPSIS
--------
[verse]
'perf ftrace' <command>

DESCRIPTION
-----------
The 'perf ftrace' command is a simple wrapper of kernel's ftrace
functionality.  It only supports single thread tracing currently and
just reads trace_pipe in text and then write it to stdout.

The following options apply to perf ftrace.

OPTIONS
-------

-t::
--tracer=::
	Tracer to use: function_graph or function.

-v::
--verbose=::
        Verbosity level.

-p::
--pid=::
	Trace on existing process 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.

-T::
--trace-funcs=::
	Only trace functions given by the argument.  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 for the function_graph tracer only and enables
	tracing 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.

-D::
--graph-depth=::
	Set max depth for function graph tracer to follow

SEE ALSO
--------
linkperf:perf-record[1], linkperf:perf-trace[1]
