'\" t .\" Title: perf-ftrace .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2023-08-16 .\" Manual: perf Manual .\" Source: perf .\" Language: English .\" .TH "PERF\-FTRACE" "1" "2023\-08\-16" "perf" "perf Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" perf-ftrace \- simple wrapper for kernel\*(Aqs ftrace functionality .SH "SYNOPSIS" .sp .nf \fIperf ftrace\fR {trace|latency} .fi .SH "DESCRIPTION" .sp The \fIperf ftrace\fR command provides a collection of subcommands which use kernel\(cqs ftrace infrastructure\&. .sp .if n \{\ .RS 4 .\} .nf \*(Aqperf ftrace trace\*(Aq 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\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf \*(Aqperf ftrace latency\*(Aq calculates execution latency of a given function (optionally with BPF) and display it as a histogram\&. .fi .if n \{\ .RE .\} .sp The following options apply to perf ftrace\&. .SH "COMMON OPTIONS" .PP \-p, \-\-pid= .RS 4 Trace on existing process id (comma separated list)\&. .RE .PP \-\-tid= .RS 4 Trace on existing thread id (comma separated list)\&. .RE .PP \-a, \-\-all\-cpus .RS 4 Force system\-wide collection\&. Scripts run without a normally use \-a by default, while scripts run with a normally don\(cqt \- this option allows the latter to be run in system\-wide mode\&. .RE .PP \-C, \-\-cpu= .RS 4 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\&. .RE .PP \-v, \-\-verbose .RS 4 Increase the verbosity level\&. .RE .SH "OPTIONS FOR \FIPERF FTRACE TRACE\FR" .PP \-t, \-\-tracer= .RS 4 Tracer to use when neither \-G nor \-F option is not specified: function_graph or function\&. .RE .PP \-F, \-\-funcs .RS 4 List available functions to trace\&. It accepts a pattern to only list interested functions\&. .RE .PP \-D, \-\-delay .RS 4 Time (ms) to wait before starting tracing after program start\&. .RE .PP \-m, \-\-buffer\-size .RS 4 Set the size of per\-cpu tracing buffer, is expected to be a number with appended unit character \- B/K/M/G\&. .RE .PP \-\-inherit .RS 4 Trace children processes spawned by our target\&. .RE .PP \-T, \-\-trace\-funcs= .RS 4 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 \fIset_ftrace_filter\fR in tracefs\&. .RE .PP \-N, \-\-notrace\-funcs= .RS 4 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 \fIset_ftrace_notrace\fR in tracefs\&. .RE .PP \-\-func\-opts .RS 4 List of options allowed to set: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} call\-graph \- Display kernel stack trace for function tracer\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} irq\-info \- Display irq context info for function tracer\&. .RE .RE .PP \-G, \-\-graph\-funcs= .RS 4 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 \fIset_graph_function\fR in tracefs\&. .RE .PP \-g, \-\-nograph\-funcs= .RS 4 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 \fIset_graph_notrace\fR in tracefs\&. .RE .PP \-\-graph\-opts .RS 4 List of options allowed to set: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} nosleep\-time \- Measure on\-CPU time only for function_graph tracer\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} noirqs \- Ignore functions that happen inside interrupt\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} verbose \- Show process names, PIDs, timestamps, etc\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} thresh= \- Setup trace duration threshold in microseconds\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} depth= \- Set max depth for function graph tracer to follow\&. .RE .RE .SH "OPTIONS FOR \FIPERF FTRACE LATENCY\FR" .PP \-T, \-\-trace\-funcs= .RS 4 Set the function name to get the histogram\&. Unlike perf ftrace trace, it only allows single function to calculate the histogram\&. .RE .PP \-b, \-\-use\-bpf .RS 4 Use BPF to measure function latency instead of using the ftrace (it uses function_graph tracer internally)\&. .RE .PP \-n, \-\-use\-nsec .RS 4 Use nano\-second instead of micro\-second as a base unit of the histogram\&. .RE .SH "SEE ALSO" .sp \fBperf-record\fR(1), \fBperf-trace\fR(1)