From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Pranith Kumar <bobby.prani@gmail.com>
Cc: Dipankar Sarma <dipankar@in.ibm.com>,
"open list:READ-COPY UPDATE..." <linux-kernel@vger.kernel.org>
Subject: Re: [RFC PATCH 1/1] kernel/rcu/tree.c: correct a check for grace period in progress
Date: Tue, 10 Jun 2014 21:12:02 -0700 [thread overview]
Message-ID: <20140611041202.GX4581@linux.vnet.ibm.com> (raw)
In-Reply-To: <1402456819-30515-1-git-send-email-bobby.prani@gmail.com>
On Tue, Jun 10, 2014 at 11:20:19PM -0400, Pranith Kumar wrote:
> The comment above the code says that we are checking both the current node and
> the parent node to see if a grace period is in progress. Change the code
> accordingly.
Almost... Please see below.
Thanx, Paul
> Signed-off-by: Pranith Kumar <bobby.prani@gmail.com>
> ---
> kernel/rcu/tree.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
> index f1ba773..b632189 100644
> --- a/kernel/rcu/tree.c
> +++ b/kernel/rcu/tree.c
> @@ -1227,7 +1227,7 @@ rcu_start_future_gp(struct rcu_node *rnp, struct rcu_data *rdp,
> * need to explicitly start one.
> */
> if (rnp->gpnum != rnp->completed ||
> - ACCESS_ONCE(rnp->gpnum) != ACCESS_ONCE(rnp->completed)) {
> + ACCESS_ONCE(rnp_root->gpnum) != ACCESS_ONCE(rnp_root->completed)) {
At this point in the code, we are checking the current rcu_node structure,
which might or might not be the root. If it is not the root, we absolutely
cannot compare against the root because we don't yet hold the root's lock.
So I cannot take this change.
That said, I do heartily encourage you to keep looking. After all, there
are bound to be at least a few bugs in RCU somewhere.
> rnp->need_future_gp[c & 0x1]++;
> trace_rcu_future_gp(rnp, rdp, c, TPS("Startedleaf"));
> goto out;
next prev parent reply other threads:[~2014-06-11 4:12 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-11 3:20 [RFC PATCH 1/1] kernel/rcu/tree.c: correct a check for grace period in progress Pranith Kumar
2014-06-11 4:12 ` Paul E. McKenney [this message]
2014-06-11 4:23 ` Pranith Kumar
2014-06-11 4:42 ` Paul E. McKenney
2014-06-11 18:18 ` Paul E. McKenney
2014-06-11 18:34 ` Pranith Kumar
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=20140611041202.GX4581@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=bobby.prani@gmail.com \
--cc=dipankar@in.ibm.com \
--cc=linux-kernel@vger.kernel.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