Steven Rostedt
edc15cafcb
tracing: Avoid unnecessary multiple recursion checks
...
When function tracing occurs, the following steps are made:
If arch does not support a ftrace feature:
call internal function (uses INTERNAL bits) which calls...
If callback is registered to the "global" list, the list
function is called and recursion checks the GLOBAL bits.
then this function calls...
The function callback, which can use the FTRACE bits to
check for recursion.
Now if the arch does not suppport a feature, and it calls
the global list function which calls the ftrace callback
all three of these steps will do a recursion protection.
There's no reason to do one if the previous caller already
did. The recursion that we are protecting against will
go through the same steps again.
To prevent the multiple recursion checks, if a recursion
bit is set that is higher than the MAX bit of the current
check, then we know that the check was made by the previous
caller, and we can skip the current check.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2013-01-22 23:38:01 -05:00
..
blktrace.c
tracing: Use this_cpu_ptr per-cpu helper
2013-01-21 13:22:30 -05:00
ftrace.c
tracing: Avoid unnecessary multiple recursion checks
2013-01-22 23:38:01 -05:00
Kconfig
ftrace: Move ARCH_SUPPORTS_FTRACE_SAVE_REGS in Kconfig
2013-01-21 13:22:35 -05:00
Makefile
trace: Stop compiling in trace_clock unconditionally
2012-09-13 22:52:08 -04:00
power-traces.c
ring_buffer.c
ring-buffer: Remove unnecessary recusive call in rb_advance_iter()
2013-01-21 13:22:29 -05:00
ring_buffer_benchmark.c
rpm-traces.c
trace.c
tracing: Fix race with max_tr and changing tracers
2013-01-22 23:33:07 -05:00
trace.h
tracing: Avoid unnecessary multiple recursion checks
2013-01-22 23:38:01 -05:00
trace_branch.c
tracing: Cache comms only after an event occurred
2012-10-31 16:45:31 -04:00
trace_clock.c
tracing: Remove trace.h header from trace_clock.c
2013-01-22 12:06:56 -05:00
trace_entries.h
Merge branch 'tip/perf/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace into perf/urgent
2012-03-24 08:19:09 +01:00
trace_event_perf.c
perf/core improvements and fixes:
2012-08-21 11:27:00 +02:00
trace_events.c
tracing: Remove the extra 4 bytes of padding in events
2013-01-21 21:05:41 -05:00
trace_events_filter.c
tracing: Replace strict_strto* with kstrto*
2012-10-31 16:45:23 -04:00
trace_events_filter_test.h
trace_export.c
tracing: Do not enable function event with enable
2012-05-10 15:55:43 -04:00
trace_functions.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2012-12-13 12:00:02 -08:00
trace_functions_graph.c
tracing/fgraph: Add max_graph_depth to limit function_graph depth
2013-01-21 13:22:34 -05:00
trace_irqsoff.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2012-12-13 12:00:02 -08:00
trace_kdb.c
trace_kprobe.c
tracing: Use irq_work for wake ups and remove *_nowake_*() functions
2012-11-02 10:21:52 -04:00
trace_mmiotrace.c
trace_nop.c
trace_output.c
tracing: Format non-nanosec times from tsc clock without a decimal point.
2012-11-13 15:48:40 -05:00
trace_output.h
trace_printk.c
tracing: Add percpu buffers for trace_printk()
2012-04-23 21:15:55 -04:00
trace_probe.c
tracing: Replace strict_strto* with kstrto*
2012-10-31 16:45:23 -04:00
trace_probe.h
tracing: Provide trace events interface for uprobes
2012-05-07 14:30:17 +02:00
trace_sched_switch.c
tracing: Use irq_work for wake ups and remove *_nowake_*() functions
2012-11-02 10:21:52 -04:00
trace_sched_wakeup.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2012-12-13 12:00:02 -08:00
trace_selftest.c
ftrace: Fix function tracing recursion self test
2013-01-22 23:37:58 -05:00
trace_selftest_dynamic.c
trace_stack.c
tracing: Remove unneeded checks from the stack tracer
2012-11-19 15:07:13 -05:00
trace_stat.c
trace_stat.h
trace_syscalls.c
tracing/syscalls: Make local functions static
2013-01-21 13:22:31 -05:00
trace_uprobe.c
tracing: Verify target file before registering a uprobe event
2013-01-21 13:22:31 -05:00