Re: [PATCH RT 1/4] rcu: Acquire RCU lock when disabling BHs

2019-06-20 Thread Paul E. McKenney
On Thu, Jun 20, 2019 at 04:38:47PM -0500, Scott Wood wrote: > On Thu, 2019-06-20 at 14:20 -0700, Paul E. McKenney wrote: > > On Thu, Jun 20, 2019 at 04:06:02PM -0500, Scott Wood wrote: > > > On Thu, 2019-06-20 at 13:53 -0700, Paul E. McKenney wrote: > > > > And I have to ask... > > > > > > > > Wha

Re: [PATCH RT 1/4] rcu: Acquire RCU lock when disabling BHs

2019-06-20 Thread Scott Wood
On Thu, 2019-06-20 at 14:20 -0700, Paul E. McKenney wrote: > On Thu, Jun 20, 2019 at 04:06:02PM -0500, Scott Wood wrote: > > On Thu, 2019-06-20 at 13:53 -0700, Paul E. McKenney wrote: > > > And I have to ask... > > > > > > What did you do to test this change to kernel/softirq.c? My past > > > att

Re: [PATCH RT 1/4] rcu: Acquire RCU lock when disabling BHs

2019-06-20 Thread Paul E. McKenney
On Thu, Jun 20, 2019 at 04:06:02PM -0500, Scott Wood wrote: > On Thu, 2019-06-20 at 13:53 -0700, Paul E. McKenney wrote: > > On Tue, Jun 18, 2019 at 08:19:05PM -0500, Scott Wood wrote: > > > diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h > > > index fb267bc04fdf..aca4e5e25ace 1006

Re: [PATCH RT 1/4] rcu: Acquire RCU lock when disabling BHs

2019-06-20 Thread Scott Wood
On Thu, 2019-06-20 at 13:53 -0700, Paul E. McKenney wrote: > On Tue, Jun 18, 2019 at 08:19:05PM -0500, Scott Wood wrote: > > diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h > > index fb267bc04fdf..aca4e5e25ace 100644 > > --- a/include/linux/rcupdate.h > > +++ b/include/linux/rcupda

Re: [PATCH RT 1/4] rcu: Acquire RCU lock when disabling BHs

2019-06-20 Thread Paul E. McKenney
On Tue, Jun 18, 2019 at 08:19:05PM -0500, Scott Wood wrote: > A plain local_bh_disable() is documented as creating an RCU critical > section, and (at least) rcutorture expects this to be the case. However, > in_softirq() doesn't block a grace period on PREEMPT_RT, since RCU checks > preempt_count(

[PATCH RT 1/4] rcu: Acquire RCU lock when disabling BHs

2019-06-18 Thread Scott Wood
A plain local_bh_disable() is documented as creating an RCU critical section, and (at least) rcutorture expects this to be the case. However, in_softirq() doesn't block a grace period on PREEMPT_RT, since RCU checks preempt_count() directly. Even if RCU were changed to check in_softirq(), that wo