Re: rcu: Merge RCU-bh into RCU-preempt

From: Paul E. McKenney
Date: Thu Nov 08 2018 - 12:35:33 EST


On Thu, Nov 08, 2018 at 06:15:16PM +0100, Sebastian Andrzej Siewior wrote:
> On 2018-11-08 08:42:47 [-0800], Paul E. McKenney wrote:
> > On Thu, Nov 08, 2018 at 05:02:57PM +0100, Sebastian Andrzej Siewior wrote:
> > > On 2018-11-01 16:18:04 [-0700], Paul E. McKenney wrote:
> > > > The need for this goes away as of the current merge window because
> > > > RCU-bh has gone away. (Aside from still being able to do things
> > > > like rcu_read_lock_bh() as a documentation device.)
> > >
> > > So in -RT rcu_read_lock_bh() does
> > > { local_bh_disable() ; rcu_read_lock() }
> > >
> > > So you are saying that this is also the case in v4.20?
> >
> > No, rcu_read_lock_bh() and rcu_read_unlock_bh() are unchanged in v4.20.
> > With the new RCU grace-period mechanism, local_bh_disable() blocks future
> > grace periods on its own.
> >
> > Unless I am missing something (quite probable, actually), the v4.20
> > definitions of rcu_read_lock_bh() and rcu_read_unlock_bh() should work
> > as-is for -rt.
>
> I *think* tglx made this patch, then you somehow reverted it partly [0]
> and the final piece we need for RT is this gem:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git/tree/patches/rcu-Eliminate-softirq-processing-from-rcutree.patch?h=linux-4.19.y-rt-patches
>
> [0] rcu: Make ksoftirqd do RCU quiescent states
> https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git/tree/patches/patch-to-introduce-rcu-bh-qs-where-safe-from-softirq.patch?h=linux-4.19.y-rt-patches

I agree that tglx's patch is needed for 4.19 and earlier. Just not for
4.20 and later.

Or am I still missing your point?

Thanx, Paul