ftrace (abbreviated from Function Tracer) is a tracingframework 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.
An ftrace-enabled Linux kernel is built by enabling the CONFIG_FUNCTION_TRACERkernel configuration option. The entire 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. However, additional userspace utilities exist to provide improved data recording, analysis and visualization features; examples of such utilities are trace-cmd and KernelShark.:31–47
ftrace is primarily developed 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.