diff options
| author | Ingo Molnar <mingo@kernel.org> | 2013-02-28 04:12:04 -0500 |
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2013-02-28 04:12:04 -0500 |
| commit | a335358f52aec4397594043ac799d15f92e728dd (patch) | |
| tree | 8146f2c71be7a05ef1615a431adecd9ec46d3e2f | |
| parent | ff1fb5f6b4925a536ffb8171e5f2dbd01ccfeb97 (diff) | |
| parent | db05021d49a994ee40a9735d9c3cb0060c9babb8 (diff) | |
Merge branch 'tip/perf/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace into perf/urgent
Pull an ftrace Kconfig help text fix from Steve Rostedt.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
| -rw-r--r-- | kernel/trace/Kconfig | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig index 36567564e221..b516a8e19d51 100644 --- a/kernel/trace/Kconfig +++ b/kernel/trace/Kconfig | |||
| @@ -429,24 +429,28 @@ config PROBE_EVENTS | |||
| 429 | def_bool n | 429 | def_bool n |
| 430 | 430 | ||
| 431 | config DYNAMIC_FTRACE | 431 | config DYNAMIC_FTRACE |
| 432 | bool "enable/disable ftrace tracepoints dynamically" | 432 | bool "enable/disable function tracing dynamically" |
| 433 | depends on FUNCTION_TRACER | 433 | depends on FUNCTION_TRACER |
| 434 | depends on HAVE_DYNAMIC_FTRACE | 434 | depends on HAVE_DYNAMIC_FTRACE |
| 435 | default y | 435 | default y |
| 436 | help | 436 | help |
| 437 | This option will modify all the calls to ftrace dynamically | 437 | This option will modify all the calls to function tracing |
| 438 | (will patch them out of the binary image and replace them | 438 | dynamically (will patch them out of the binary image and |
| 439 | with a No-Op instruction) as they are called. A table is | 439 | replace them with a No-Op instruction) on boot up. During |
| 440 | created to dynamically enable them again. | 440 | compile time, a table is made of all the locations that ftrace |
| 441 | can function trace, and this table is linked into the kernel | ||
| 442 | image. When this is enabled, functions can be individually | ||
| 443 | enabled, and the functions not enabled will not affect | ||
| 444 | performance of the system. | ||
| 445 | |||
| 446 | See the files in /sys/kernel/debug/tracing: | ||
| 447 | available_filter_functions | ||
| 448 | set_ftrace_filter | ||
| 449 | set_ftrace_notrace | ||
| 441 | 450 | ||
| 442 | This way a CONFIG_FUNCTION_TRACER kernel is slightly larger, but | 451 | This way a CONFIG_FUNCTION_TRACER kernel is slightly larger, but |
| 443 | otherwise has native performance as long as no tracing is active. | 452 | otherwise has native performance as long as no tracing is active. |
| 444 | 453 | ||
| 445 | The changes to the code are done by a kernel thread that | ||
| 446 | wakes up once a second and checks to see if any ftrace calls | ||
| 447 | were made. If so, it runs stop_machine (stops all CPUS) | ||
| 448 | and modifies the code to jump over the call to ftrace. | ||
| 449 | |||
| 450 | config DYNAMIC_FTRACE_WITH_REGS | 454 | config DYNAMIC_FTRACE_WITH_REGS |
| 451 | def_bool y | 455 | def_bool y |
| 452 | depends on DYNAMIC_FTRACE | 456 | depends on DYNAMIC_FTRACE |
