Re: [PATCH 01/10] rcu: Directly lock rdp->nocb_lock on nocb code entrypoints

Joel Fernandes
2020-06-11T01:32:29Z

On Wed, Jun 10, 2020 at 04:21:42PM -0700, Paul E. McKenney wrote:
[...]
> > > 8. To softirq 3. Either GP or CB kthread for the transitioning
> > > CPU advances to next.
> > > At this point, the no-CBs setup is fully shut down.
> > > 9. To softirq 4. Transitioning code advances to next,
> > > which is the first, "In softirq".
> > > (This one -might- be unnecessary, but...)
> > >
> > > All transitions are of course with the ->nocb_lock held.
> > >
> > > When there is only one CPU during early boot near rcu_init() time,
> > > the transition from "In softirq" to "No-CB" can remain be instantaneous.
> > >
> > > This has the advantage of not slowing things down just because there
> > > is an RCU callback flood in progress. It also uses an explicit
> > > protocol that should (give or take bugs) maintain full safety both
> > > in protection of ->cblist and in dealing with RCU callback floods.
> > >
> > > Thoughts?
> >
> > Agreed. And I really like that it details the whole process in a very
> > explicit way.
> >
> > Thanks!
>
> Glad you like it! And of course please adjust it as needed, up to and
> including doing something completely different that works better. ;-)

Makes sense to me too, thanks!

- Joel