1
0
Fork 0
alistair23-linux/kernel/trace
Steven Rostedt aa18efb2a2 tracing: use recursive counter over irq level
Althought using the irq level (hardirq_count, softirq_count and in_nmi)
was nice to detect bad recursion right away, but since the counters are
not atomically updated with respect to the interrupts, the function tracer
might trigger the test from an interrupt handler before the hardirq_count
is updated. This will trigger a false warning.

This patch converts the recursive detection to a simple counter.
If the depth is greater than 16 then the recursive detection will trigger.
16 is more than enough for any nested interrupts.

[ Impact: fix false positive trace recursion detection ]

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2009-04-20 16:16:11 -04:00
..
Kconfig tracing: rename EVENT_TRACER config to ENABLE_EVENT_TRACING 2009-04-20 17:55:35 +02:00
Makefile tracing/events: move the ftrace event tracing code to core 2009-04-14 12:57:59 -04:00
blktrace.c blktrace: fix context-info when mixed-using blk tracer and trace events 2009-04-16 10:11:01 +02:00
ftrace.c ftrace: use module notifier for function tracer 2009-04-17 16:59:15 +02:00
kmemtrace.c tracing/filters: use ring_buffer_discard_commit() in filter_check_discard() 2009-04-14 00:00:56 +02:00
ring_buffer.c tracing: use recursive counter over irq level 2009-04-20 16:16:11 -04:00
trace.c tracing: protect trace_printk from recursion 2009-04-17 16:21:35 -04:00
trace.h tracing/filters: add filter_mutex to protect filter predicates 2009-04-17 18:28:27 +02:00
trace_boot.c tracing: use macros to denote usec and nsec per second 2009-04-07 14:43:06 +02:00
trace_branch.c tracing/filters: use ring_buffer_discard_commit() in filter_check_discard() 2009-04-14 00:00:56 +02:00
trace_clock.c tracing: fix four sparse warnings 2009-03-22 18:16:54 +01:00
trace_event_profile.c tracing/events: convert event call sites to use a link list 2009-04-14 12:58:00 -04:00
trace_event_types.h tracing/filters: add TRACE_EVENT_FORMAT_NOFILTER event macro 2009-04-14 00:00:51 +02:00
trace_events.c tracing/events: call the correct event trace selftest init function 2009-04-20 12:12:44 -04:00
trace_events_filter.c tracing/filters: add filter_mutex to protect filter predicates 2009-04-17 18:28:27 +02:00
trace_export.c tracing/filters: allow on-the-fly filter switching 2009-04-14 00:03:55 +02:00
trace_functions.c tracing/core: use appropriate waiting on trace_pipe 2009-02-18 01:40:20 +01:00
trace_functions_graph.c function-graph: add option to calculate graph time or not 2009-03-24 23:41:11 -04:00
trace_hw_branches.c tracing/filters: use ring_buffer_discard_commit() in filter_check_discard() 2009-04-14 00:00:56 +02:00
trace_irqsoff.c tracing: have latency tracers set the latency format 2009-03-04 22:15:30 -05:00
trace_mmiotrace.c tracing: use macros to denote usec and nsec per second 2009-04-07 14:43:06 +02:00
trace_nop.c tracing/ftrace: make nop-tracer use polling wait for events on pipe 2009-03-23 09:22:15 +01:00
trace_output.c tracing/events: add export symbols for trace events in modules 2009-04-14 12:58:01 -04:00
trace_output.h tracing/events: move declarations from trace directory to core include 2009-04-14 12:57:58 -04:00
trace_power.c tracing/filters: use ring_buffer_discard_commit() in filter_check_discard() 2009-04-14 00:00:56 +02:00
trace_printk.c tracing/ftrace: factorize the tracing files creation 2009-04-07 14:43:07 +02:00
trace_sched_switch.c tracing/events: move trace point headers into include/trace/events 2009-04-14 22:05:43 -04:00
trace_sched_wakeup.c tracing/events: move trace point headers into include/trace/events 2009-04-14 22:05:43 -04:00
trace_selftest.c tracing: keep the tracing buffer after self-test failure 2009-03-22 15:17:21 +01:00
trace_selftest_dynamic.c ftrace: fix dynamic ftrace selftest 2008-05-23 21:13:23 +02:00
trace_stack.c tracing/ftrace: factorize the tracing files creation 2009-04-07 14:43:07 +02:00
trace_stat.c Merge branch 'linus' into tracing/core 2009-04-07 13:47:45 +02:00
trace_stat.h tracing: add handler to trace_stat 2009-03-24 23:22:58 -04:00
trace_syscalls.c tracing/syscalls: use a dedicated file header 2009-04-09 05:43:32 +02:00
trace_sysprof.c tracing/ftrace: factorize the tracing files creation 2009-04-07 14:43:07 +02:00
trace_workqueue.c Merge branch 'linus' into tracing/core 2009-04-07 13:47:45 +02:00