Messages in this thread | | | Subject | Re: [RFC][PATCH 3/4] tracing/kprobes: Fail to unregister if probe event files are open | From | Steven Rostedt <> | Date | Thu, 01 Aug 2013 10:45:39 -0400 |
| |
On Thu, 2013-08-01 at 16:33 +0200, Oleg Nesterov wrote: > On 08/01, Steven Rostedt wrote: > > > > On Thu, 2013-08-01 at 15:34 +0200, Oleg Nesterov wrote: > > > > > > > > __unregister_trace_probe(tp); > > > > list_del(&tp->list) > > > > unregister_probe_event(tp) <-- fails! > > > > free_trace_probe(tp) > > > > > > Yes. But again, this doesn't explain why unregister_probe_event()-> > > > __trace_remove_event_call() can't simply proceed and > > > do ftrace_event_enable_disable() + remove_event_from_tracers(). > > > > The problem is with the soft disable. > > Exactly! This is another (also unlikely) race we need to prevent. >
Is there a race even with these patches? I don't see one. To link a function to an event (set the soft disable mode), the event_mutex is taken. If the event is gone, it wont be able to link. If the soft disable is attached (after found and set under event_mutex), the event can't be deleted.
Or are you just saying that these patches fix that case too?
-- Steve
| |