On Thu, Jan 08, 2026 at 08:39:11PM -0500, Joel Fernandes wrote: > On Thu, Jan 08, 2026 at 04:57:26PM +0100, Frederic Weisbecker wrote: > > Le Thu, Jan 01, 2026 at 11:34:12AM -0500, Joel Fernandes a écrit : > > > @@ -974,8 +959,7 @@ static bool do_nocb_deferred_wakeup_common(struct > > > rcu_data *rdp_gp, > > > return false; > > > } > > > > > > - ndw = rdp_gp->nocb_defer_wakeup; > > > - ret = __wake_nocb_gp(rdp_gp, rdp, ndw == RCU_NOCB_WAKE_FORCE, flags); > > > + ret = __wake_nocb_gp(rdp_gp, rdp, false, flags); > > > > The force parameter can now be removed, right? (same applies to > > wake_nocb_gp()). > > > > Other than that: > > > > Reviewed-by: Frederic Weisbecker <[email protected]> > > Ah true! Thanks, so the following hunk needs to be squashed into the patch > then, with the review tag. Boqun, if you want to do that please do, or I can > send it again for the next merge window. >
We still have time for this merge window, but I see there is still reviewing going on for other patches, maybe you could resend these 3 patches once we reach agreement, and then we can decide which merge window. Thoughts? Regards, Boqun > ---8<----------------------- > > From: "Joel Fernandes" <[email protected]> > Subject: [PATCH] fixup! rcu/nocb: Remove unnecessary WakeOvfIsDeferred wake > path > > Signed-off-by: Joel Fernandes <[email protected]> > --- > kernel/rcu/tree.c | 2 +- > kernel/rcu/tree.h | 2 +- > kernel/rcu/tree_nocb.h | 14 +++++++------- > 3 files changed, 9 insertions(+), 9 deletions(-) > > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c > index 293bbd9ac3f4..2921ffb19939 100644 > --- a/kernel/rcu/tree.c > +++ b/kernel/rcu/tree.c > @@ -3769,7 +3769,7 @@ static void rcu_barrier_entrain(struct rcu_data *rdp) > } > rcu_nocb_unlock(rdp); > if (wake_nocb) > - wake_nocb_gp(rdp, false); > + wake_nocb_gp(rdp); > smp_store_release(&rdp->barrier_seq_snap, gseq); > } > > diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h > index 653fb4ba5852..7dfc57e9adb1 100644 > --- a/kernel/rcu/tree.h > +++ b/kernel/rcu/tree.h > @@ -499,7 +499,7 @@ static void zero_cpu_stall_ticks(struct rcu_data *rdp); > static struct swait_queue_head *rcu_nocb_gp_get(struct rcu_node *rnp); > static void rcu_nocb_gp_cleanup(struct swait_queue_head *sq); > static void rcu_init_one_nocb(struct rcu_node *rnp); > -static bool wake_nocb_gp(struct rcu_data *rdp, bool force); > +static bool wake_nocb_gp(struct rcu_data *rdp); > static bool rcu_nocb_flush_bypass(struct rcu_data *rdp, struct rcu_head *rhp, > unsigned long j, bool lazy); > static void call_rcu_nocb(struct rcu_data *rdp, struct rcu_head *head, > diff --git a/kernel/rcu/tree_nocb.h b/kernel/rcu/tree_nocb.h > index daff2756cd90..c6f1ddecc2d8 100644 > --- a/kernel/rcu/tree_nocb.h > +++ b/kernel/rcu/tree_nocb.h > @@ -192,7 +192,7 @@ static void rcu_init_one_nocb(struct rcu_node *rnp) > > static bool __wake_nocb_gp(struct rcu_data *rdp_gp, > struct rcu_data *rdp, > - bool force, unsigned long flags) > + unsigned long flags) > __releases(rdp_gp->nocb_gp_lock) > { > bool needwake = false; > @@ -225,13 +225,13 @@ static bool __wake_nocb_gp(struct rcu_data *rdp_gp, > /* > * Kick the GP kthread for this NOCB group. > */ > -static bool wake_nocb_gp(struct rcu_data *rdp, bool force) > +static bool wake_nocb_gp(struct rcu_data *rdp) > { > unsigned long flags; > struct rcu_data *rdp_gp = rdp->nocb_gp_rdp; > > raw_spin_lock_irqsave(&rdp_gp->nocb_gp_lock, flags); > - return __wake_nocb_gp(rdp_gp, rdp, force, flags); > + return __wake_nocb_gp(rdp_gp, rdp, flags); > } > > #ifdef CONFIG_RCU_LAZY > @@ -553,7 +553,7 @@ static void __call_rcu_nocb_wake(struct rcu_data *rdp, > bool was_alldone, > TPS("WakeLazy")); > } else if (!irqs_disabled_flags(flags)) { > /* ... if queue was empty ... */ > - wake_nocb_gp(rdp, false); > + wake_nocb_gp(rdp); > trace_rcu_nocb_wake(rcu_state.name, rdp->cpu, > TPS("WakeEmpty")); > } else { > @@ -959,7 +959,7 @@ static bool do_nocb_deferred_wakeup_common(struct > rcu_data *rdp_gp, > return false; > } > > - ret = __wake_nocb_gp(rdp_gp, rdp, false, flags); > + ret = __wake_nocb_gp(rdp_gp, rdp, flags); > trace_rcu_nocb_wake(rcu_state.name, rdp->cpu, TPS("DeferredWake")); > > return ret; > @@ -1255,7 +1255,7 @@ lazy_rcu_shrink_scan(struct shrinker *shrink, struct > shrink_control *sc) > } > rcu_nocb_try_flush_bypass(rdp, jiffies); > rcu_nocb_unlock_irqrestore(rdp, flags); > - wake_nocb_gp(rdp, false); > + wake_nocb_gp(rdp); > sc->nr_to_scan -= _count; > count += _count; > if (sc->nr_to_scan <= 0) > @@ -1640,7 +1640,7 @@ static void rcu_init_one_nocb(struct rcu_node *rnp) > { > } > > -static bool wake_nocb_gp(struct rcu_data *rdp, bool force) > +static bool wake_nocb_gp(struct rcu_data *rdp) > { > return false; > } > -- > 2.34.1 >

