Re: [PATCH] RCU: Adjust comments for force_qs_rnp

From: Paul E. McKenney
Date: Wed Mar 20 2019 - 12:35:08 EST


On Wed, Mar 20, 2019 at 03:33:00AM +0000, Zhouyi Zhou wrote:
> Previously, threads blocked on offlining CPUS are migrated to root
> rcu_node, so there is a need to initiate RCU priority boosting on root
> rcu_node,
>
> Current RCU does not migrate blocked tasks even if all corresponding CPUs
> offline.
> commit d19fb8d1f3f6 ("rcu: Don't migrate blocked tasks even if all corresponding CPUs offline")'
>
> Consequently, rcu does not initiate RCU priority boosting on root rcu_node.
> commit 1be0085b515e ("rcu: Don't initiate RCU priority boosting on root rcu_node")'
>
> So I think the comments for force_qs_rnp should be adjusted.
>
> Signed-off-by: Zhouyi Zhou <zhouzhouyi@xxxxxxxxx>

Great catch, thank you! I have queued it with wordsmithing as shown
below. Please let me know if I messed anything up.

Thanx, Paul

------------------------------------------------------------------------

commit 24bbb0754fdfabe3976c42e82620d1d1a86da9d6
Author: Zhouyi Zhou <zhouzhouyi@xxxxxxxxx>
Date: Wed Mar 20 03:33:00 2019 +0000

rcu: Fix force_qs_rnp() header comment

Previously, threads blocked on offlining CPUS were migrated to the
root rcu_node structure, thus requiring RCU priority boosting on this
structure. However, since commit d19fb8d1f3f6 ("rcu: Don't migrate
blocked tasks even if all corresponding CPUs offline"), RCU does not
migrate blocked tasks. Consequently, RCU no longer does RCU priority
boosting on the root rcu_node structure as of commit 1be0085b515e ("rcu:
Don't initiate RCU priority boosting on root rcu_node").

This commit therefore brings comments for the force_qs_rnp() function's
header comment in line with this new no-root-boosting reality.

Signed-off-by: Zhouyi Zhou <zhouzhouyi@xxxxxxxxx>
[ paulmck: Also remove obsolete comment on suppressing new grace periods. ]
Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxxxxx>

diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index c719929c9316..961dbc7b8949 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -2171,11 +2171,11 @@ void rcu_sched_clock_irq(int user)
}

/*
- * Scan the leaf rcu_node structures, processing dyntick state for any that
- * have not yet encountered a quiescent state, using the function specified.
- * Also initiate boosting for any threads blocked on the root rcu_node.
- *
- * The caller must have suppressed start of new grace periods.
+ * Scan the leaf rcu_node structures. For each structure on which all
+ * CPUs have reported a quiescent state and on which there are tasks
+ * blocking the current grace period, initiate RCU priority boosting.
+ * Otherwise, invoke the specified function to check dyntick state for
+ * each CPU that has not yet reported a quiescent state.
*/
static void force_qs_rnp(int (*f)(struct rcu_data *rdp))
{