ftrace
DevelopersSteven Rostedt and others
Initial releaseOctober 9, 2008; 17 years ago (2008-10-09)
Operating systemLinux
TypeKernel extension
LicenseGNU GPL version 2[1]
Websitewww.kernel.org/doc/html/latest/trace/index.html

ftrace (Function Tracer) is a tracing framework for the Linux kernel. Although its original name, Function Tracer, came from ftrace's ability to record information related to various function calls performed while the kernel is running, ftrace's tracing capabilities cover a much broader range of kernel's internal operations.[2][3]

Details

edit

With its various tracer plugins, ftrace can be targeted at different static tracepoints, such as scheduling events, interrupts, memory-mapped I/O, CPU power state transitions, and operations related to file systems and virtualization. Also, dynamic tracking of kernel function calls is available, optionally restrictable to a subset of functions by using globs, and with the possibility to generate call graphs and provide stack usage reports. At the same time, ftrace can be used to measure various latencies within the Linux kernel, such as for how long interrupts or preemption are disabled.[2][4][5]: 3–11, 14, 18 

An ftrace-enabled Linux kernel is built by enabling the CONFIG_FUNCTION_TRACER kernel configuration option. The entire runtime interaction with ftrace is performed through readable and writable virtual files contained in a specifically mounted debugfs file system; as a result, ftrace requires no specialized userspace utilities to operate.[2][3][6] However, there are additional userspace utilities that provide more advanced features for data recording, analysis and visualization; examples of such utilities are trace-cmd and KernelShark.[2][5]: 31–47 [7][8]

Internally, ftrace relies on the gcc's profiling mechanism to prepend machine instructions to the compiled versions of all source-level kernel functions, which redirect the execution of functions to the ftrace's trampolines and tracer plugins that perform the actual tracing. These "entry point" instructions created by gcc are altered by ftrace when the kernel is booted, and varied later at runtime by ftrace between NOPs and actual jumps to the tracing trampolines, depending on the tracing types and options configured at runtime.[9][10]

ftrace is developed primarily by Steven Rostedt, and it was merged into the Linux kernel mainline in kernel version 2.6.27, which was released on October 9, 2008.[11]

See also

edit
  • DTrace – a tracing framework for troubleshooting kernel and application problems, originally developed for Solaris
  • ktrace – a BSD Unix and Mac OS X utility that traces kernel–program interactions
  • ltrace – a Linux debugging utility, displays the calls a userland application makes to shared libraries
  • strace – a debugging utility for Linux and some other Unix-like systems, monitors system calls used by a program and all received signals
  • SystemTap – a scripting language and utility used for instrumenting Linux systems

References

edit
  1. ^ "Linux kernel source: kernel/COPYING file". kernel.org. March 13, 1994. Retrieved June 11, 2016.
  2. ^ a b c d Jake Edge (March 13, 2009). "A look at ftrace". LWN.net. Retrieved July 23, 2014.
  3. ^ a b Steven Rostedt (June 16, 2014). "Linux kernel documentation: Documentation/trace/ftrace.txt". kernel.org. Retrieved July 23, 2014.
  4. ^ "Red Hat Enterprise MRG 2 documentation, Section 3.8. Using the ftrace utility for tracing latencies". Red Hat. May 23, 2014. Retrieved July 24, 2014.
  5. ^ a b Steven Rostedt (October 18, 2010). "Ftrace: Linux Kernel Tracing" (PDF). linuxfoundation.org. Archived from the original (PDF) on March 8, 2013. Retrieved July 23, 2014.
  6. ^ "Red Hat Enterprise Linux 6 documentation, Section 6.5. ftrace". Red Hat. March 14, 2014. Retrieved July 23, 2014.
  7. ^ Steven Rostedt (October 20, 2010). "trace-cmd: A front-end for Ftrace". LWN.net. Retrieved January 19, 2015.
  8. ^ Steven Rostedt (February 2, 2011). "Using KernelShark to analyze the real-time scheduler". LWN.net. Retrieved June 11, 2016.
  9. ^ Steven Rostedt (January 5, 2015). "Ftrace Kernel Hooks: More than just tracing" (PDF). linuxplumbersconf.org. pp. 6–12, 24, 34, 56–58. Retrieved June 11, 2016.
  10. ^ Tim Bird (November 1, 2012). "Measuring Function Duration with Ftrace" (PDF). elinux.org. pp. 5–6, 12–14. Retrieved June 11, 2016.
  11. ^ "Linux kernel 2.6.27, Section 1.7. ftrace, sysprof support". kernelnewbies.org. October 9, 2008. Retrieved July 23, 2014.
edit

📚 Artikel Terkait di Wikipedia

Strace

has ltrace that can trace library and system calls, xtrace that can trace X Window System programs, SystemTap, perf, and trace-cmd and KernelShark that

Comparison of raster-to-vector conversion software

– 2006 open source fork of Xara Photo & Graphic Designer "Скачать". EasyTrace (in Russian). 2023-05-02. Archived from the original on 2023-05-31. Retrieved

C-command

dominance: Node N1 dominates node N2 if N1 is above N2 in the tree and one can trace a path from N1 to N2 moving only downwards in the tree (never upwards);

Private browsing

service provider (ISP). Furthermore, there is a possibility that identifiable traces of activity could be leaked from private browsing sessions by means of the

Sara Duterte

Representatives in 2018. Duterte ran for the vice presidency in 2022 under Lakas–CMD, becoming the running mate of Bongbong Marcos from the Partido Federal ng

Joseph Bernos

had tested positive for COVID-19. Bernos was reelected in 2025 under Lakas-CMD. In the 2022 Philippine local elections, he ran for the Mayor of Abra under

List of filename extensions (A–E)

oracle.com. Retrieved 2020-09-12. Elliott, John C. "CP/M-86 executables (.CMD)". Seasip.info. Archived from the original on 2016-11-14. Retrieved 2016-08-29

Olympic Airways Flight 3838

relevant autopilot modes: Control Wheel Steering (CWS) and command mode (CMD). When in CMD, significant longitudinal and/or lateral inputs on the control column