Re: Notifier chains are unsafe

From: Andi Kleen
Date: Wed Oct 26 2005 - 16:44:05 EST


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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/