Re: Simplifying our RCU models

From: Paul E. McKenney
Date: Wed Aug 29 2018 - 17:47:26 EST


On Wed, Jun 27, 2018 at 03:28:35PM -0700, Paul E. McKenney wrote:
> On Fri, Jun 08, 2018 at 09:51:34AM -0700, Paul E. McKenney wrote:
> > On Tue, Apr 10, 2018 at 04:44:25PM -0700, Paul E. McKenney wrote:
> > > On Thu, Mar 08, 2018 at 12:45:24PM -0800, Paul E. McKenney wrote:
> > > > On Wed, Mar 07, 2018 at 10:48:50AM -0800, Linus Torvalds wrote:
> > > > > On Wed, Mar 7, 2018 at 7:54 AM, Paul E. McKenney
> > > > > <paulmck@xxxxxxxxxxxxxxxxxx> wrote:
> > > > > >
> > > > > > Ah, and any thoughts on how best to get feedback from the various people
> > > > > > who would need to reprogram their fingers? Or is everyone already on
> > > > > > board with changing these various names?
> > > > >
> > > > > I really would prefer to not see massive re-naming unless there is a
> > > > > really good reason for it.
> > > > >
> > > > > I'm all for simplifying RCU from a million different versions down to
> > > > > just a few thousand, but I'm definitely not convinced we want to do
> > > > > any search-and-replace.
> > > >
> > > > I am currently in the design (more accurately, reredesign phase) for
> > > > the simplification. It is quite possible that there is a good reason
> > > > for at least some renaming, but in that case, I would come back later
> > > > with that as a separate proposal.
> > >
> > > And I really am still working on this. It is a bit tricky, but still
> > > looks doable. More likely to be ready for 4.19 than 4.18, though.
> >
> > I suppose it is well past time for an update...
> >
> > I believe I have the preparation work done (famous last words!), and I am
> > now working on making rcutorture properly test the resulting compound RCU
> > read-side critical sections. User-level testing might be necessary (and
> > has been for some of the preparatory work). The ink-on-paper prototype
> > is starting to look promising, and I expect to get the corresponding
> > prototype patch posted by the end of this month.
> >
> > A bit trickier than I expected (as usual), but still looking doable.
>
> And it now passes light rcutorture testing, so I have posted an RFC
> series to LKML:
>
> lkml.kernel.org/r/20180627204835.GA25456@xxxxxxxxxxxxxxxxxx
>
> There will be a long series of cleanups that will remove the other
> flavors and also the code that supports multiple flavors, but there are
> probably quite a few bugs to fix in this particular patch between now
> and then. ;-)

If anything, the new consolidated-flavor version is now more stable than
the old one ever was. So I am posting the consolidation patch and a
lot of cleanup patches. Taken together, these reduce the size of RCU
by more than 400 lines of code.

The cleanups for the next merge window are confined to RCU itself.
For the merge window after that, I will have cleanups outside of RCU,
for example, replacing synchronize_sched() and synchronize_rcu_bh()
with synchronize_rcu() and removing synchronize_rcu_mult().

Thanx, Paul