On Wed, Dec 06, 2023 at 09:10:22PM -0500, Steven Rostedt wrote: > On Wed, 06 Dec 2023 17:31:30 -0800 > Ankur Arora <ankur.a.arora@xxxxxxxxxx> wrote: > > > --- > > diff --git a/include/linux/preempt.h b/include/linux/preempt.h > > index 9aa6358a1a16..d8139cda8814 100644 > > --- a/include/linux/preempt.h > > +++ b/include/linux/preempt.h > > @@ -226,9 +226,11 @@ do { \ > > #ifdef CONFIG_PREEMPTION > > #define preempt_enable() \ > > do { \ > > barrier(); \ > > if (unlikely(preempt_count_dec_and_test())) \ > > __preempt_schedule(); \ > > + else if (unlikely(raw_cpu_read(rcu_data.rcu_urgent_qs))) \ > > Shouldn't this still have the: > > else if (!IS_ENABLED(CONFIG_PREEMPT_RCU) && \ > > That is, is it needed when PREEMPT_RCU is set? Given that PREEMPT_RCU has been getting along fine without it, I agree with Steve on this one. Unless and until someone demonstrates otherwise, but such a demonstration would almost certainly affect current code, not just the lazy-preemption changes. Thanx, Paul > -- Steve > > > > + rcu_all_qs_check(); > > } while (0) > > > > #define preempt_enable_notrace() \