mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-04 04:06:26 +00:00
74ae366c37
The -s/--sort option is to sort the output by given column. $ sudo perf ftrace profile -s max sync | head # Total (us) Avg (us) Max (us) Count Function 6301.811 6301.811 6301.811 1 __do_sys_sync 6301.328 6301.328 6301.328 1 ksys_sync 5320.300 1773.433 2858.819 3 iterate_supers 2755.875 17.012 2610.633 162 sync_fs_one_sb 2728.351 682.088 2610.413 4 ext4_sync_fs [ext4] 2603.654 2603.654 2603.654 1 jbd2_log_wait_commit [jbd2] 4750.615 593.827 2597.427 8 schedule 2164.986 26.728 2115.673 81 sync_inodes_one_sb 2143.842 26.467 2115.438 81 sync_inodes_sb Reviewed-by: Ian Rogers <irogers@google.com> Signed-off-by: Namhyung Kim <namhyung@kernel.org> Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Changbin Du <changbin.du@gmail.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Kan Liang <kan.liang@linux.intel.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Steven Rostedt (VMware) <rostedt@goodmis.org> Link: https://lore.kernel.org/lkml/20240729004127.238611-5-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
197 lines
5.7 KiB
Plaintext
197 lines
5.7 KiB
Plaintext
perf-ftrace(1)
|
|
==============
|
|
|
|
NAME
|
|
----
|
|
perf-ftrace - simple wrapper for kernel's ftrace functionality
|
|
|
|
|
|
SYNOPSIS
|
|
--------
|
|
[verse]
|
|
'perf ftrace' {trace|latency|profile} <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.
|
|
|
|
'perf ftrace profile' show a execution profile for each function including
|
|
total, average, max time and the number of calls.
|
|
|
|
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.
|
|
- tail - Print function name at the end.
|
|
|
|
|
|
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.
|
|
|
|
|
|
OPTIONS for 'perf ftrace profile'
|
|
---------------------------------
|
|
|
|
-T::
|
|
--trace-funcs=::
|
|
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=::
|
|
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 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=::
|
|
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.
|
|
|
|
-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.
|
|
|
|
-s::
|
|
--sort=::
|
|
Sort the result by the given field. Available values are:
|
|
total, avg, max, count, name. Default is 'total'.
|
|
|
|
|
|
SEE ALSO
|
|
--------
|
|
linkperf:perf-record[1], linkperf:perf-trace[1]
|