Re: [-mm PATCH 1/4] RCU: split classic rcu

From: Dipankar Sarma
Date: Thu Sep 28 2006 - 10:44:40 EST

On Thu, Sep 28, 2006 at 03:26:16PM +0100, Christoph Hellwig wrote:
> On Wed, Sep 27, 2006 at 09:32:40AM -0700, Paul E. McKenney wrote:
> > We will be switching to a new implementation. I am working to make it
> > as reliable as I know how, but it seems reasonable to have a changeover
> > period that might be measured in years. I -really- don't want to be
> > inflicting even the possibility of RCU implementation bugs on anyone who
> > has not "signed up" for code that has not yet be hammered into total
> > and complete submission! CONFIG_PREEMPT_RT is quite reliable even now,
> > but there is "quite reliable" and then there is "hammered into total
> > and complete submission". ;-)
> >
> > Also, we need any new implementation of RCU to be in a separate file.
> > I don't want to even think about the number of times that I accidentally
> > changed the wrong version of RCU when working on the -rt implementation
> > before we split it -- the functions have the same name, right? :-/
> Still there's absolutely no point in putting all this into mainline. Do
> it in your toy tree (whether it's called -rt or -pk :)) and keep one
> stable implementation in mainline. That one implementation should be
> srcu capable rather sooner than later (as soon as you're satisfied with it)
> because there's lots of interesting use cases for sleeping in RCU read
> sections. But until then keep the mainline code simple.


The RCU read path is so sensitive that unless a large number of
users test the rcupreempt implementation, it will be difficult
for us to safely switch over without hurting. We cannot get that
test exposure from -rt or -pk :-) Really, the mainline code split is
very simple and should be maintainable with an understanding
that within a year or so, we can switch over to just one
implementation. I am not comfortable with the risk of causing
sudden performance problems for some users. By staging it,
we can minimize that risk.

Srcu is independent of the underlying RCU mechanism, it works with
both the RCU implementations.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at