On Wed, Sep 03, 2025 at 10:03:48AM +0800, Oliver Sang wrote:
> hi, Paul,
> On Fri, Aug 29, 2025 at 10:23:17AM -0700, Paul E. McKenney wrote:
>
> [...]
>
> > Again, apologies for being slow, and thank you for your testing efforts.
> >
> > Idiot here forgot about Tiny SRCU, so please see the end of this email
> > for an alleged fix. Does it do the trick for you?
>
> besides the patch [1] as in the end part of mail, we noticed you also have a
> patch in [2]. I don't have enough knowledge to follow the dicussion between
> you and Zqiang well. it just seems to me both patches are fixes which should
> be squashed into original patch?
>
> I made below applyment:
>
> * e5ab29c09c470e squash! rcu: Re-implement RCU Tasks Trace in terms of
> SRCU-fast <--- patch in [2]
> * f717bca99dfb15 1st fix patch for 8bd9383727 from Paul <--- patch in [1]
> * 8bd9383727068a rcu: Re-implement RCU Tasks Trace in terms of SRCU-fast
>
> by testing, the issue "WARNING:possible_circular_locking_dependency_detected"
> cannot be reproduced on both f717bca99dfb15 and e5ab29c09c470e
>
> sorry if I miss or misunderstood something, otherwise,
You got it exactly! The updated commit is this one:
a9e63382cbfa ("rcu: Re-implement RCU Tasks Trace in terms of SRCU-fast")
> Tested-by: kernel test robot <[email protected]>
I will apply on my next rebase, and thank you for your testing efforts!
Thanx, Paul
> > > If you fix the issue in a separate patch/commit (i.e. not just a new
> > > version of
> > > the same patch/commit), kindly add following tags
> > > | Reported-by: kernel test robot <[email protected]>
> > > | Closes:
> > > https://lore.kernel.org/oe-lkp/[email protected]
>
> [...]
>
> > > The kernel config and materials to reproduce are available at:
> > > https://download.01.org/0day-ci/archive/20250826/[email protected]
> > > --
> > > 0-DAY CI Kernel Test Service
> > > https://github.com/intel/lkp-tests/wiki
> >
>
> [1]
>
> > ------------------------------------------------------------------------
> >
> > diff --git a/kernel/rcu/srcutiny.c b/kernel/rcu/srcutiny.c
> > index 6e9fe2ce1075d5..db63378f062051 100644
> > --- a/kernel/rcu/srcutiny.c
> > +++ b/kernel/rcu/srcutiny.c
> > @@ -106,7 +106,7 @@ void __srcu_read_unlock(struct srcu_struct *ssp, int
> > idx)
> > newval = READ_ONCE(ssp->srcu_lock_nesting[idx]) - 1;
> > WRITE_ONCE(ssp->srcu_lock_nesting[idx], newval);
> > preempt_enable();
> > - if (!newval && READ_ONCE(ssp->srcu_gp_waiting) && in_task())
> > + if (!newval && READ_ONCE(ssp->srcu_gp_waiting) && in_task() &&
> > !irqs_disabled())
> > swake_up_one(&ssp->srcu_wq);
> > }
> > EXPORT_SYMBOL_GPL(__srcu_read_unlock);
> >
>
> [2]
> https://lore.kernel.org/all/8f43f958-e3e6-44d5-9600-9e096c3a06b7@paulmck-laptop/