160 lines
6.9 KiB
Plaintext
160 lines
6.9 KiB
Plaintext
libtracefs(3)
|
|
=============
|
|
|
|
NAME
|
|
----
|
|
tracefs_options - ftrace options, that can be controlled using tracefs library.
|
|
|
|
SYNOPSIS
|
|
--------
|
|
[verse]
|
|
--
|
|
*#include <tracefs.h>*
|
|
|
|
enum tracefs_option_id {
|
|
*TRACEFS_OPTION_INVALID*,
|
|
*TRACEFS_OPTION_ANNOTATE*,
|
|
*TRACEFS_OPTION_BIN*,
|
|
*TRACEFS_OPTION_BLK_CGNAME*,
|
|
*TRACEFS_OPTION_BLK_CGROUP*,
|
|
*TRACEFS_OPTION_BLK_CLASSIC*,
|
|
*TRACEFS_OPTION_BLOCK*,
|
|
*TRACEFS_OPTION_CONTEXT_INFO*,
|
|
*TRACEFS_OPTION_DISABLE_ON_FREE*,
|
|
*TRACEFS_OPTION_DISPLAY_GRAPH*,
|
|
*TRACEFS_OPTION_EVENT_FORK*,
|
|
*TRACEFS_OPTION_FGRAPH_ABSTIME*,
|
|
*TRACEFS_OPTION_FGRAPH_CPU*,
|
|
*TRACEFS_OPTION_FGRAPH_DURATION*,
|
|
*TRACEFS_OPTION_FGRAPH_IRQS*,
|
|
*TRACEFS_OPTION_FGRAPH_OVERHEAD*,
|
|
*TRACEFS_OPTION_FGRAPH_OVERRUN*,
|
|
*TRACEFS_OPTION_FGRAPH_PROC*,
|
|
*TRACEFS_OPTION_FGRAPH_TAIL*,
|
|
*TRACEFS_OPTION_FUNC_STACKTRACE*,
|
|
*TRACEFS_OPTION_FUNCTION_FORK*,
|
|
*TRACEFS_OPTION_FUNCTION_TRACE*,
|
|
*TRACEFS_OPTION_GRAPH_TIME*,
|
|
*TRACEFS_OPTION_HEX*,
|
|
*TRACEFS_OPTION_IRQ_INFO*,
|
|
*TRACEFS_OPTION_LATENCY_FORMAT*,
|
|
*TRACEFS_OPTION_MARKERS*,
|
|
*TRACEFS_OPTION_OVERWRITE*,
|
|
*TRACEFS_OPTION_PAUSE_ON_TRACE*,
|
|
*TRACEFS_OPTION_PRINTK_MSG_ONLY*,
|
|
*TRACEFS_OPTION_PRINT_PARENT*,
|
|
*TRACEFS_OPTION_RAW*,
|
|
*TRACEFS_OPTION_RECORD_CMD*,
|
|
*TRACEFS_OPTION_RECORD_TGID*,
|
|
*TRACEFS_OPTION_SLEEP_TIME*,
|
|
*TRACEFS_OPTION_STACKTRACE*,
|
|
*TRACEFS_OPTION_SYM_ADDR*,
|
|
*TRACEFS_OPTION_SYM_OFFSET*,
|
|
*TRACEFS_OPTION_SYM_USEROBJ*,
|
|
*TRACEFS_OPTION_TRACE_PRINTK*,
|
|
*TRACEFS_OPTION_USERSTACKTRACE*,
|
|
*TRACEFS_OPTION_VERBOSE*,
|
|
};
|
|
--
|
|
|
|
DESCRIPTION
|
|
-----------
|
|
This enum contains all ftrace options, that can be manipulated using tracefs library. More detailed
|
|
information about each option is available in Documentation/trace/ftrace.rst from the Linux
|
|
kernel tree, in the trace_options section. Note that some ftrace options cannot be manipulated by
|
|
this library, as they are intended for internal, debug purposes. These options control the tracers
|
|
or the trace output. All options have two states - on and off, the default state is different for
|
|
each of them.
|
|
[verse]
|
|
--
|
|
Common options for all tracers:
|
|
*TRACEFS_OPTION_INVALID* Not a valid ftrace option, used by the API to indicate an error.
|
|
*TRACEFS_OPTION_ANNOTATE* Display when a new CPU buffer started.
|
|
*TRACEFS_OPTION_BIN* Display the formats in raw binary.
|
|
*TRACEFS_OPTION_CONTEXT_INFO* Show only the event data. Hides the comm, PID, timestamp, CPU, and other useful data.
|
|
*TRACEFS_OPTION_BLOCK* When set, reading trace_pipe will not block when polled.
|
|
*TRACEFS_OPTION_DISABLE_ON_FREE* When the free_buffer is closed, tracing will stop.
|
|
*TRACEFS_OPTION_DISPLAY_GRAPH* When set, the latency tracers will use function graph tracing instead of function tracing.
|
|
*TRACEFS_OPTION_EVENT_FORK* When set, tasks with PIDs listed in set_event_pid will have the PIDs of their children added to set_event_pid when those tasks fork.
|
|
*TRACEFS_OPTION_FUNCTION_FORK* When set, tasks with PIDs listed in set_ftrace_pid will have the PIDs of their children added to set_ftrace_pid when those tasks fork.
|
|
*TRACEFS_OPTION_FUNCTION_TRACE* When enabled, the latency tracers will trace functions.
|
|
*TRACEFS_OPTION_HEX* Display numbers in a hexadecimal format.
|
|
*TRACEFS_OPTION_IRQ_INFO* Display the interrupt, preempt count, need resched data.
|
|
*TRACEFS_OPTION_LATENCY_FORMAT* Display additional information about the latency.
|
|
*TRACEFS_OPTION_MARKERS* When set, the trace_marker is enabled - writable (only by root).
|
|
*TRACEFS_OPTION_OVERWRITE* Controls what happens when the trace buffer is full. If set, the oldest events are discarded and overwritten. If disabled, then the newest events are discarded.
|
|
*TRACEFS_OPTION_PAUSE_ON_TRACE* When set, opening the trace file for read, will pause writing to the ring buffer. When the file is closed, tracing will be enabled again.
|
|
*TRACEFS_OPTION_PRINTK_MSG_ONLY* When set, trace_printk()s will only show the format and not their parameters.
|
|
*TRACEFS_OPTION_PRINT_PARENT* On function traces, display the calling (parent) function as well as the function being traced.
|
|
*TRACEFS_OPTION_RAW* Display raw numbers.
|
|
*TRACEFS_OPTION_RECORD_CMD* Save a mapping with a pid and corresponding command.
|
|
*TRACEFS_OPTION_RECORD_TGID* Save a mapping with a pid and corresponding Thread Group IDs.
|
|
*TRACEFS_OPTION_STACKTRACE* Record a stack trace after any trace event.
|
|
*TRACEFS_OPTION_SYM_ADDR* Display the function address as well as the function name.
|
|
*TRACEFS_OPTION_SYM_OFFSET* Display not only the function name, but also the offset in the function.
|
|
*TRACEFS_OPTION_SYM_USEROBJ* When *TRACEFS_OPTION_USERSTACKTRACE* is set, look up which object the address belongs to, and print the object and a relative address.
|
|
*TRACEFS_OPTION_TRACE_PRINTK* Disable trace_printk() from writing into the buffer.
|
|
*TRACEFS_OPTION_USERSTACKTRACE* Records a stack trace of the current user space thread after each trace event.
|
|
*TRACEFS_OPTION_VERBOSE* When *TRACEFS_OPTION_LATENCY_FORMAT* is enabled, print more detailed information.
|
|
|
|
Options, specific to function tracer:
|
|
*TRACEFS_OPTION_FUNC_STACKTRACE* Record a stack trace after every function.
|
|
|
|
Options, specific to function_graph tracer:
|
|
*TRACEFS_OPTION_FGRAPH_ABSTIME* Display the timestamp at each line.
|
|
*TRACEFS_OPTION_FGRAPH_CPU* Display the CPU number of the CPU where the trace occurred.
|
|
*TRACEFS_OPTION_FGRAPH_DURATION* Display the duration of the amount of time at the end of each function, in microseconds.
|
|
*TRACEFS_OPTION_FGRAPH_IRQS* Trace functions that happen inside an interrupt.
|
|
*TRACEFS_OPTION_FGRAPH_OVERHEAD* Display a marker if a function takes longer than a certain amount of time.
|
|
*TRACEFS_OPTION_FGRAPH_OVERRUN* Display "overrun" of the call graph, in the case of functions missed due to big callstack.
|
|
*TRACEFS_OPTION_FGRAPH_PROC* Display the command of each process at every line.
|
|
*TRACEFS_OPTION_FGRAPH_TAIL* Display the function name on its return.
|
|
*TRACEFS_OPTION_SLEEP_TIME* Account time the task has been scheduled out as part of the function call.
|
|
*TRACEFS_OPTION_GRAPH_TIME* Display the time to call nested functions, if function profiler is enabled.
|
|
|
|
Options, specific to blk tracer:
|
|
*TRACEFS_OPTION_BLK_CGNAME*
|
|
*TRACEFS_OPTION_BLK_CGROUP*
|
|
*TRACEFS_OPTION_BLK_CLASSIC* Display a more minimalistic output.
|
|
--
|
|
FILES
|
|
-----
|
|
[verse]
|
|
--
|
|
*tracefs.h*
|
|
Header file to include in order to have access to the library APIs.
|
|
*-ltracefs*
|
|
Linker switch to add when building a program that uses the library.
|
|
--
|
|
|
|
SEE ALSO
|
|
--------
|
|
*libtracefs*(3),
|
|
*libtraceevent*(3),
|
|
*trace-cmd*(1),
|
|
_Documentation/trace/ftrace.rst_ from the Linux kernel tree.
|
|
|
|
AUTHOR
|
|
------
|
|
[verse]
|
|
--
|
|
*Steven Rostedt* <rostedt@goodmis.org>
|
|
*Tzvetomir Stoyanov* <tz.stoyanov@gmail.com>
|
|
--
|
|
REPORTING BUGS
|
|
--------------
|
|
Report bugs to <linux-trace-devel@vger.kernel.org>
|
|
|
|
LICENSE
|
|
-------
|
|
libtracefs is Free Software licensed under the GNU LGPL 2.1
|
|
|
|
RESOURCES
|
|
---------
|
|
https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/
|
|
|
|
COPYING
|
|
-------
|
|
Copyright \(C) 2021 VMware, Inc. Free use of this software is granted under
|
|
the terms of the GNU Public License (GPL).
|