On 07/08, Masami Hiramatsu wrote: > > (2013/07/06 2:26), Oleg Nesterov wrote: > (Perhaps, uprobes too.)
Sure, uprobes needs all the same fixes, lets ignore it for now. > >> A safe way is to wait rcu always right after disable_*probe > >> in disable_trace_probe. If we have an unused link, we can > >> free it after that. > > > > Aaaah... I am starting to understand... Even if kprobe_perf_func() > > is fine, synchronize_sched() is calles _before_ disable_kprobe() > > and thus it can't synchronize with the handlers which hit this probe > > after we start synchronize_sched(). > > > > Did you mean this or I misssed something else? > > Right, thus perf path also need to be synchronized. kprobe_perf_func() looks fine. This path can't use anything which can be freed by trace_remove_event_call(). We are going to free tp / tp->call but only after unregister_kprobe(). Afaics. But even if I am right, I agree it would be safer to not rely on this and simply do synchronize_sched() after disable as you suggested. Thanks, Oleg. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/