diff options
author | Steven Rostedt <rostedt@goodmis.org> | 2008-11-12 00:14:40 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-11-12 05:52:02 -0500 |
commit | 52f232cb720a7babb752849cbc2cab2d24021209 (patch) | |
tree | 47c7e800549457bd5ab9b54f47729acac6e10780 /kernel/trace/Kconfig | |
parent | 1f0d69a9fc815db82f15722bf05227190b1d714d (diff) |
tracing: likely/unlikely branch annotation tracer
Impact: new likely/unlikely branch tracer
This patch adds a way to record the instances of the likely() and unlikely()
branch condition annotations.
When "unlikely" is set in /debugfs/tracing/iter_ctrl the unlikely conditions
will be added to any of the ftrace tracers. The change takes effect when
a new tracer is passed into the current_tracer file.
For example:
bash-3471 [003] 357.014755: [INCORRECT] sched_info_dequeued:sched_stats.h:177
bash-3471 [003] 357.014756: [correct] update_curr:sched_fair.c:489
bash-3471 [003] 357.014758: [correct] calc_delta_fair:sched_fair.c:411
bash-3471 [003] 357.014759: [correct] account_group_exec_runtime:sched_stats.h:356
bash-3471 [003] 357.014761: [correct] update_curr:sched_fair.c:489
bash-3471 [003] 357.014763: [INCORRECT] calc_delta_fair:sched_fair.c:411
bash-3471 [003] 357.014765: [correct] calc_delta_mine:sched.c:1279
Which shows the normal tracer heading, as well as whether the condition was
correct "[correct]" or was mistaken "[INCORRECT]", followed by the function,
file name and line number.
Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/trace/Kconfig')
-rw-r--r-- | kernel/trace/Kconfig | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig index a604f24c755f..8abcaf821beb 100644 --- a/kernel/trace/Kconfig +++ b/kernel/trace/Kconfig | |||
@@ -175,6 +175,28 @@ config TRACE_UNLIKELY_PROFILE | |||
175 | 175 | ||
176 | Say N if unsure. | 176 | Say N if unsure. |
177 | 177 | ||
178 | config TRACING_UNLIKELY | ||
179 | bool | ||
180 | help | ||
181 | Selected by tracers that will trace the likely and unlikely | ||
182 | conditions. This prevents the tracers themselves from being | ||
183 | profiled. Profiling the tracing infrastructure can only happen | ||
184 | when the likelys and unlikelys are not being traced. | ||
185 | |||
186 | config UNLIKELY_TRACER | ||
187 | bool "Trace likely/unlikely instances" | ||
188 | depends on TRACE_UNLIKELY_PROFILE | ||
189 | select TRACING_UNLIKELY | ||
190 | help | ||
191 | This traces the events of likely and unlikely condition | ||
192 | calls in the kernel. The difference between this and the | ||
193 | "Trace likely/unlikely profiler" is that this is not a | ||
194 | histogram of the callers, but actually places the calling | ||
195 | events into a running trace buffer to see when and where the | ||
196 | events happened, as well as their results. | ||
197 | |||
198 | Say N if unsure. | ||
199 | |||
178 | config STACK_TRACER | 200 | config STACK_TRACER |
179 | bool "Trace max stack" | 201 | bool "Trace max stack" |
180 | depends on HAVE_FUNCTION_TRACER | 202 | depends on HAVE_FUNCTION_TRACER |