Steven Rostedt
c29f122cd7
ftrace: Add context level recursion bit checking
...
Currently for recursion checking in the function tracer, ftrace
tests a task_struct bit to determine if the function tracer had
recursed or not. If it has, then it will will return without going
further.
But this leads to races. If an interrupt came in after the bit
was set, the functions being traced would see that bit set and
think that the function tracer recursed on itself, and would return.
Instead add a bit for each context (normal, softirq, irq and nmi).
A check of which context the task is in is made before testing the
associated bit. Now if an interrupt preempts the function tracer
after the previous context has been set, the interrupt functions
can still be traced.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2013-01-22 23:38:00 -05:00
..
blktrace.c
tracing: Use this_cpu_ptr per-cpu helper
2013-01-21 13:22:30 -05:00
ftrace.c
ftrace: Add context level recursion bit checking
2013-01-22 23:38:00 -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
ftrace: Add context level recursion bit checking
2013-01-22 23:38:00 -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
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
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
trace_probe.c
tracing: Replace strict_strto* with kstrto*
2012-10-31 16:45:23 -04:00
trace_probe.h
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