Steven Rostedt (Red Hat)
7818b38865
ftrace: Use manual free after synchronize_sched() not call_rcu_sched()
...
The entries to the probe hash must be freed after a synchronize_sched()
after the entry has been removed from the hash.
As the entries are registered with ops that may have their own callbacks,
and these callbacks may sleep, we can not use call_rcu_sched() because
the rcu callbacks registered with that are called from a softirq context.
Instead of using call_rcu_sched(), manually save the entries on a free_list
and at the end of the loop that removes the entries, do a synchronize_sched()
and then go through the free_list, freeing the entries.
Cc: Paul McKenney <paulmck@linux.vnet.ibm.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2013-03-15 00:36:03 -04:00
..
blktrace.c
tracing: Consolidate max_tr into main trace_array structure
2013-03-15 00:35:40 -04:00
ftrace.c
ftrace: Use manual free after synchronize_sched() not call_rcu_sched()
2013-03-15 00:36:03 -04:00
Kconfig
tracing: Add config option to allow snapshot to swap per cpu
2013-03-15 00:35:47 -04: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: Do not use schedule_work_on() for current CPU
2013-03-15 00:35:52 -04:00
ring_buffer_benchmark.c
rpm-traces.c
trace.c
tracing: Add snapshot trigger to function probes
2013-03-15 00:36:01 -04:00
trace.h
tracing: Add internal ftrace trace_puts() for ftrace to use
2013-03-15 00:35:56 -04:00
trace_branch.c
tracing: Fix the branch tracer that broke with buffer change
2013-03-15 00:35:54 -04:00
trace_clock.c
Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2013-02-19 17:49:41 -08:00
trace_entries.h
tracing: Add trace_puts() for even faster trace_printk() tracing
2013-03-15 00:35:55 -04:00
trace_event_perf.c
trace_events.c
tracing: Add alloc_snapshot kernel command line parameter
2013-03-15 00:35:53 -04:00
trace_events_filter.c
tracing: Separate out trace events from global variables
2013-03-15 00:34:40 -04:00
trace_events_filter_test.h
trace_export.c
tracing: Fix some section mismatch warnings
2013-03-15 00:34:54 -04:00
trace_functions.c
ftrace: Separate unlimited probes from count limited probes
2013-03-15 00:35:59 -04:00
trace_functions_graph.c
tracing: Consolidate max_tr into main trace_array structure
2013-03-15 00:35:40 -04:00
trace_irqsoff.c
tracing: Consolidate max_tr into main trace_array structure
2013-03-15 00:35:40 -04:00
trace_kdb.c
tracing: Consolidate max_tr into main trace_array structure
2013-03-15 00:35:40 -04:00
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
tracing: Consolidate max_tr into main trace_array structure
2013-03-15 00:35:40 -04:00
trace_nop.c
trace_output.c
tracing: Add trace_puts() for even faster trace_printk() tracing
2013-03-15 00:35:55 -04:00
trace_output.h
tracing: Add trace_puts() for even faster trace_printk() tracing
2013-03-15 00:35:55 -04:00
trace_printk.c
trace_probe.c
tracing: Replace strict_strto* with kstrto*
2012-10-31 16:45:23 -04:00
trace_probe.h
uprobes/tracing: Introduce is_trace_uprobe_enabled()
2013-02-08 18:24:30 +01:00
trace_sched_switch.c
tracing: Consolidate max_tr into main trace_array structure
2013-03-15 00:35:40 -04:00
trace_sched_wakeup.c
tracing: Consolidate max_tr into main trace_array structure
2013-03-15 00:35:40 -04:00
trace_selftest.c
tracing: Consolidate max_tr into main trace_array structure
2013-03-15 00:35:40 -04: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: Consolidate max_tr into main trace_array structure
2013-03-15 00:35:40 -04:00
trace_uprobe.c
uprobes/perf: Avoid uprobe_apply() whenever possible
2013-02-08 18:28:08 +01:00