mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] rcu/tree: Add comment to describe GP done condition in fqs loop
@ 2022-06-09  7:13 Neeraj Upadhyay
  2022-06-09 20:23 ` Paul E. McKenney
  2022-06-10 16:37 ` Joel Fernandes
  0 siblings, 2 replies; 6+ messages in thread
From: Neeraj Upadhyay @ 2022-06-09  7:13 UTC (permalink / raw)
  To: paulmck, frederic, josh, rostedt, mathieu.desnoyers, jiangshanlai, joel
  Cc: linux-kernel, boqun.feng, urezki, Neeraj Upadhyay

Add a comment to explain why !rcu_preempt_blocked_readers_cgp() condition
is required on root rnp node, for GP completion check in rcu_gp_fqs_loop().

Signed-off-by: Neeraj Upadhyay <quic_neeraju@quicinc.com>
---
 kernel/rcu/tree.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index a93c5f4d7e09..9cd1ba512fdc 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -2083,7 +2083,17 @@ static noinline_for_stack void rcu_gp_fqs_loop(void)
 		rcu_gp_torture_wait();
 		WRITE_ONCE(rcu_state.gp_state, RCU_GP_DOING_FQS);
 		/* Locking provides needed memory barriers. */
-		/* If grace period done, leave loop. */
+		/*
+		 * If grace period done, leave loop. rcu_preempt_blocked_readers_cgp(rnp)
+		 * check is required for the case where we only have single node in the
+		 * rcu_node tree; so, root rcu node is also the leaf node, where readers
+		 * blocking current gp are queued. For multi-node tree, checking ->qsmask
+		 * on the root node is sufficient, as root rcu node's ->qsmask is only
+		 * cleared, when all leaf rcu nodes have propagated their quiescent
+		 * state to their parent node, which happens only after both ->qsmask
+		 * and rcu_preempt_blocked_readers_cgp(rnp_leaf) are cleared for those
+		 * leaf nodes.
+		 */
 		if (!READ_ONCE(rnp->qsmask) &&
 		    !rcu_preempt_blocked_readers_cgp(rnp))
 			break;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-06-10 17:00 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-09  7:13 [PATCH] rcu/tree: Add comment to describe GP done condition in fqs loop Neeraj Upadhyay
2022-06-09 20:23 ` Paul E. McKenney
2022-06-10  3:15   ` Neeraj Upadhyay
2022-06-10  3:41     ` Paul E. McKenney
2022-06-10 16:37 ` Joel Fernandes
2022-06-10 17:00   ` Paul E. McKenney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®