On 2019-08-22 22:23:23 [-0500], Scott Wood wrote: > On Thu, 2019-08-22 at 09:39 -0400, Joel Fernandes wrote: > > On Wed, Aug 21, 2019 at 04:33:58PM -0700, Paul E. McKenney wrote: > > > On Wed, Aug 21, 2019 at 06:19:04PM -0500, Scott Wood wrote: > > > > Signed-off-by: Scott Wood <swood@xxxxxxxxxx> > > > > --- > > > > Another question is whether non-raw spinlocks are intended to create > > > > an > > > > RCU read-side critical section due to implicit preempt disable. > > > > > > Hmmm... Did non-raw spinlocks act like rcu_read_lock_sched() > > > and rcu_read_unlock_sched() pairs in -rt prior to the RCU flavor > > > consolidation? If not, I don't see why they should do so after that > > > consolidation in -rt. > > > > May be I am missing something, but I didn't see the connection between > > consolidation and this patch. AFAICS, this patch is so that > > rcu_read_lock_bh_held() works at all on -rt. Did I badly miss something? > > Before consolidation, RT mapped rcu_read_lock_bh_held() to > rcu_read_lock_bh() and called rcu_read_lock() from rcu_read_lock_bh(). This > somehow got lost when rebasing on top of 5.0. so now rcu_read_lock_bh_held() is untouched and in_softirq() reports 1. So the problem is that we never hold RCU but report 1 like we do? Sebastian