On Tue, Mar 02, 2021 at 05:24:56PM -0800, Paul E. McKenney wrote: > On Tue, Feb 23, 2021 at 01:10:08AM +0100, Frederic Weisbecker wrote: > > A NOCB-gp wake up can safely delete the nocb_bypass_timer. nocb_gp_wait() > > is going to check again the bypass state and rearm the bypass timer if > > necessary. > > > > Signed-off-by: Frederic Weisbecker <frederic@xxxxxxxxxx> > > Cc: Josh Triplett <josh@xxxxxxxxxxxxxxxx> > > Cc: Lai Jiangshan <jiangshanlai@xxxxxxxxx> > > Cc: Joel Fernandes <joel@xxxxxxxxxxxxxxxxx> > > Cc: Neeraj Upadhyay <neeraju@xxxxxxxxxxxxxx> > > Cc: Boqun Feng <boqun.feng@xxxxxxxxx> > > Give that you delete this code a couple of patches later in this series, > why not just leave it out entirely? ;-) It's not exactly deleted later, it's rather merged within the "del_timer(&rdp_gp->nocb_timer)". The purpose of that patch is to make it clear that we explicitly cancel the nocb_bypass_timer here before we do it implicitly later with the merge of nocb_bypass_timer into nocb_timer. We could drop that patch, the resulting code in the end of the patchset will be the same of course but the behaviour detail described here might slip out of the reviewers attention :-) > > Thanx, Paul > > > --- > > kernel/rcu/tree_plugin.h | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h > > index b62ad79bbda5..9da67b0d3997 100644 > > --- a/kernel/rcu/tree_plugin.h > > +++ b/kernel/rcu/tree_plugin.h > > @@ -1711,6 +1711,8 @@ static bool __wake_nocb_gp(struct rcu_data *rdp_gp, > > del_timer(&rdp_gp->nocb_timer); > > } > > > > + del_timer(&rdp_gp->nocb_bypass_timer); > > + > > if (force || READ_ONCE(rdp_gp->nocb_gp_sleep)) { > > WRITE_ONCE(rdp_gp->nocb_gp_sleep, false); > > needwake = true; Thanks.