---
name: "perf_5.10-ftrace"
section: "1"
platform: "linux"
package: "linux-perf-5.10"
version: "5.10.223-1"
release: "Debian 11 (Bullseye)"
platforms: ["linux"]
url: "https://new.carta.tech/perf_5.10-ftrace"
---

# perf\_5.10-ftrace(1)

simple wrapper for kernel's ftrace functionality

## NAME

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

## SYNOPSIS

```
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 when neither -G nor -F option is not specified: function\_graph or function.

\-v, --verbose=

Verbosity level.

- \-F, --funcs

  List available functions to trace. It accepts a pattern to only list interested functions.

\-p, --pid=

Trace on existing process id (comma separated list).

\--tid=

Trace on existing thread id (comma separated list).

- \-D, --delay

  Time (ms) to wait before starting tracing after program start.

- \-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.

- \-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.

## SEE ALSO

[perf-record(1)](/perf-record/1.md), [perf-trace(1)](/perf-trace/1.md)
