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