Messages in this thread Patch in this message | | | Date | Tue, 30 Sep 2008 01:51:12 -0400 | From | Mathieu Desnoyers <> | Subject | [PATCH] Tracepoints fix reentrancy |
| |
The tracepoints had the same problem markers did have wrt reentrancy. Apply a similar fix using a rcu_barrier after each tracepoint mutex lock.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> CC: Ingo Molnar <mingo@elte.hu> CC: "Frank Ch. Eigler" <fche@redhat.com> CC: Lai Jiangshan <laijs@cn.fujitsu.com> --- kernel/tracepoint.c | 4 ++++ 1 file changed, 4 insertions(+)
Index: linux-2.6-lttng/kernel/tracepoint.c =================================================================== --- linux-2.6-lttng.orig/kernel/tracepoint.c 2008-09-30 01:38:39.000000000 -0400 +++ linux-2.6-lttng/kernel/tracepoint.c 2008-09-30 01:39:56.000000000 -0400 @@ -361,6 +361,8 @@ int tracepoint_probe_register(const char mutex_lock(&tracepoints_mutex); entry = get_tracepoint(name); WARN_ON(!entry); + if (entry->rcu_pending) + rcu_barrier_sched(); tracepoint_entry_free_old(entry, old); end: mutex_unlock(&tracepoints_mutex); @@ -397,6 +399,8 @@ int tracepoint_probe_unregister(const ch entry = get_tracepoint(name); if (!entry) goto end; + if (entry->rcu_pending) + rcu_barrier_sched(); tracepoint_entry_free_old(entry, old); remove_tracepoint(name); /* Ignore busy error message */ ret = 0; -- Mathieu Desnoyers OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
| |