| 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] |