From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Joel Fernandes <joelaf@google.com>
Cc: linux-kernel@vger.kernel.org,
"Joel Fernandes (Google)" <joel@joelfernandes.org>,
Boqun Feng <boqun.feng@gmail.com>,
byungchul.park@lge.com, Ingo Molnar <mingo@redhat.com>,
Josh Triplett <josh@joshtriplett.org>,
kernel-team@android.com, Lai Jiangshan <jiangshanlai@gmail.com>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Peter Zilstra <peterz@infradead.org>,
Steven Rostedt <rostedt@goodmis.org>
Subject: Re: [PATCH 4/4] rcu: Identify grace period is in progress as we advance up the tree
Date: Wed, 23 May 2018 09:06:40 -0700 [thread overview]
Message-ID: <20180523160640.GN3803@linux.vnet.ibm.com> (raw)
In-Reply-To: <20180523063815.198302-5-joel@joelfernandes.org>
On Tue, May 22, 2018 at 11:38:15PM -0700, Joel Fernandes wrote:
> From: "Joel Fernandes (Google)" <joel@joelfernandes.org>
>
> There's no need to keep checking the same starting node for whether a
> grace period is in progress as we advance up the funnel lock loop. Its
> sufficient if we just checked it in the start, and then subsequently
> checked the internal nodes as we advanced up the combining tree. This
> also makes sense because the grace-period updates propogate from the
> root to the leaf, so there's a chance we may find a grace period has
> started as we advance up, lets check for the same.
>
> Reported-by: Paul McKenney <paulmck@linux.vnet.ibm.com>
> Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Looks good, queued for further review and testing, thank you!
Thanx, Paul
> ---
> kernel/rcu/tree.c | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
> index 31f4b4b7d824..65e49282429c 100644
> --- a/kernel/rcu/tree.c
> +++ b/kernel/rcu/tree.c
> @@ -1570,11 +1570,12 @@ static bool rcu_start_this_gp(struct rcu_node *rnp_start, struct rcu_data *rdp,
> goto unlock_out;
> }
> rnp->gp_seq_needed = gp_seq_req;
> - if (rcu_seq_state(rcu_seq_current(&rnp_start->gp_seq))) {
> + if (rcu_seq_state(rcu_seq_current(&rnp->gp_seq))) {
> /*
> - * We just marked the leaf, and a grace period
> - * is in progress, which means that rcu_gp_cleanup()
> - * will see the marking. Bail to reduce contention.
> + * We just marked the leaf or internal node, and a
> + * grace period is in progress, which means that
> + * rcu_gp_cleanup() will see the marking. Bail to
> + * reduce contention.
> */
> trace_rcu_this_gp(rnp_start, rdp, gp_seq_req,
> TPS("Startedleaf"));
> --
> 2.17.0.441.gb46fe60e1d-goog
>
prev parent reply other threads:[~2018-05-23 16:16 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-23 6:38 [PATCH 0/4] cleanups, fixes for rcu/dev Joel Fernandes
2018-05-23 6:38 ` [PATCH 1/4] rcu: Speed up calling of RCU tasks callbacks Joel Fernandes
2018-05-23 15:57 ` Paul E. McKenney
2018-05-23 16:45 ` Steven Rostedt
2018-05-23 17:03 ` Paul E. McKenney
2018-05-23 19:13 ` Steven Rostedt
2018-05-23 20:04 ` Paul E. McKenney
2018-05-23 21:51 ` Joel Fernandes
2018-05-24 0:51 ` Joel Fernandes
2018-05-24 1:35 ` Steven Rostedt
2018-05-24 21:47 ` Steven Rostedt
2018-05-24 22:38 ` Paul E. McKenney
2018-05-24 22:42 ` Steven Rostedt
2018-07-17 9:11 ` [tip:core/rcu] rcu: Add comment to the last sleep in the rcu tasks loop tip-bot for Steven Rostedt (VMware)
2018-07-17 9:11 ` [tip:core/rcu] rcu: Speed up calling of RCU tasks callbacks tip-bot for Steven Rostedt (VMware)
2018-05-23 6:38 ` [PATCH 2/4] rcu: Add comment documenting how rcu_seq_snap works Joel Fernandes
2018-05-23 16:04 ` Paul E. McKenney
2018-05-23 6:38 ` [PATCH 3/4] rcu: Use better variable names in funnel locking loop Joel Fernandes
2018-05-23 16:06 ` Paul E. McKenney
2018-05-23 19:23 ` Paul E. McKenney
2018-05-24 0:54 ` Joel Fernandes
2018-05-24 1:27 ` Paul E. McKenney
2018-05-23 6:38 ` [PATCH 4/4] rcu: Identify grace period is in progress as we advance up the tree Joel Fernandes
2018-05-23 16:06 ` Paul E. McKenney [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180523160640.GN3803@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=boqun.feng@gmail.com \
--cc=byungchul.park@lge.com \
--cc=jiangshanlai@gmail.com \
--cc=joel@joelfernandes.org \
--cc=joelaf@google.com \
--cc=josh@joshtriplett.org \
--cc=kernel-team@android.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).