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

From: Sebastian Andrzej Siewior
Date: Thu Nov 08 2018 - 12:15:22 EST


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

> Thanx, Paul

Sebastian