Messages in this thread | | | From | Andi Kleen <> | Subject | Re: Notifier chains are unsafe | Date | Wed, 26 Oct 2005 23:44:37 +0200 |
| |
On Wednesday 26 October 2005 22:40, Alan Stern wrote: l> On Wed, 26 Oct 2005, Andreas Kleen wrote: > > > > Note that the RCU documentation says RCU critical sections are not > > > allowed > > > to sleep. > > > > In this case it would be ok. > > I don't understand. If it's okay for an RCU critical section to sleep in > this case, why wouldn't it be okay always? What's special here? > > Aren't there requirements about critical sections finishing on the same > CPU as they started on?
Like I wrote earlier: as long as the notifier doesn't unregister itself the critical RCU section for the list walk is only a small part of notifier_call_chain. It's basically a stable anchor in the list that won't change.
The only change needed would be to make these parts unpreemptable and of course add a RCU step during unregistration.
-Andi - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |