Loading kernel/trace/Kconfig +14 −10 Original line number Diff line number Diff line Loading @@ -429,24 +429,28 @@ config PROBE_EVENTS def_bool n config DYNAMIC_FTRACE bool "enable/disable ftrace tracepoints dynamically" bool "enable/disable function tracing dynamically" depends on FUNCTION_TRACER depends on HAVE_DYNAMIC_FTRACE default y help This option will modify all the calls to ftrace dynamically (will patch them out of the binary image and replace them with a No-Op instruction) as they are called. A table is created to dynamically enable them again. This option will modify all the calls to function tracing dynamically (will patch them out of the binary image and replace them with a No-Op instruction) on boot up. During compile time, a table is made of all the locations that ftrace can function trace, and this table is linked into the kernel image. When this is enabled, functions can be individually enabled, and the functions not enabled will not affect performance of the system. See the files in /sys/kernel/debug/tracing: available_filter_functions set_ftrace_filter set_ftrace_notrace This way a CONFIG_FUNCTION_TRACER kernel is slightly larger, but otherwise has native performance as long as no tracing is active. The changes to the code are done by a kernel thread that wakes up once a second and checks to see if any ftrace calls were made. If so, it runs stop_machine (stops all CPUS) and modifies the code to jump over the call to ftrace. config DYNAMIC_FTRACE_WITH_REGS def_bool y depends on DYNAMIC_FTRACE Loading Loading
kernel/trace/Kconfig +14 −10 Original line number Diff line number Diff line Loading @@ -429,24 +429,28 @@ config PROBE_EVENTS def_bool n config DYNAMIC_FTRACE bool "enable/disable ftrace tracepoints dynamically" bool "enable/disable function tracing dynamically" depends on FUNCTION_TRACER depends on HAVE_DYNAMIC_FTRACE default y help This option will modify all the calls to ftrace dynamically (will patch them out of the binary image and replace them with a No-Op instruction) as they are called. A table is created to dynamically enable them again. This option will modify all the calls to function tracing dynamically (will patch them out of the binary image and replace them with a No-Op instruction) on boot up. During compile time, a table is made of all the locations that ftrace can function trace, and this table is linked into the kernel image. When this is enabled, functions can be individually enabled, and the functions not enabled will not affect performance of the system. See the files in /sys/kernel/debug/tracing: available_filter_functions set_ftrace_filter set_ftrace_notrace This way a CONFIG_FUNCTION_TRACER kernel is slightly larger, but otherwise has native performance as long as no tracing is active. The changes to the code are done by a kernel thread that wakes up once a second and checks to see if any ftrace calls were made. If so, it runs stop_machine (stops all CPUS) and modifies the code to jump over the call to ftrace. config DYNAMIC_FTRACE_WITH_REGS def_bool y depends on DYNAMIC_FTRACE Loading