From: Frederic Weisbecker <frederic@kernel.org>
To: "Paul E . McKenney" <paulmck@kernel.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
Uladzislau Rezki <uladzislau.rezki@sony.com>,
Boqun Feng <boqun.feng@gmail.com>,
Neeraj Upadhyay <quic_neeraju@quicinc.com>,
Joel Fernandes <joel@joelfernandes.org>
Subject: Re: [PATCH 2/4] rcu: No need to reset the poll request flag before completion
Date: Wed, 30 Mar 2022 13:27:52 +0200 [thread overview]
Message-ID: <20220330112752.GA1245830@lothringen> (raw)
In-Reply-To: <20220316144255.336021-3-frederic@kernel.org>
On Wed, Mar 16, 2022 at 03:42:53PM +0100, Frederic Weisbecker wrote:
> The flag allowing to requeue the polling work is reset before the
> polling even starts. However there is no point in having two competing
> polling on the same grace period. Just reset the flag once we have
> completed the grace period only.
>
> Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
> Cc: Neeraj Upadhyay <quic_neeraju@quicinc.com>
> Cc: Boqun Feng <boqun.feng@gmail.com>
> Cc: Uladzislau Rezki <uladzislau.rezki@sony.com>
> Cc: Joel Fernandes <joel@joelfernandes.org>
> ---
> kernel/rcu/tree_exp.h | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/kernel/rcu/tree_exp.h b/kernel/rcu/tree_exp.h
> index b6fd857f34ba..763ec35546ed 100644
> --- a/kernel/rcu/tree_exp.h
> +++ b/kernel/rcu/tree_exp.h
> @@ -911,7 +911,6 @@ static void sync_rcu_do_polled_gp(struct work_struct *wp)
>
> raw_spin_lock_irqsave(&rnp->exp_poll_lock, flags);
> s = rnp->exp_seq_poll_rq;
> - rnp->exp_seq_poll_rq |= 0x1;
On a second (or actually twentieth) thought, this patch and all those following
make wrapping issues more likely:
* Before this patch, wrapping occuring *after* the 0x1 is set on the beginning
of the workqueue is fine. The last vulnerable wrapping scenario is when
the wrapping happens before we reach the beginning of the workqueue
execution that sets the 0x1, so the work may happen not to be queued.
* After this patch, wrapping occuring *before* the GP completion in the
workqueue will be ignored and fail. Still unlikely, but less unlikely than
before this patch.
So please revert this series. Only the first patch "rcu: Remove needless polling
work requeue for further waiter" still seem to make sense.
Thanks.
next prev parent reply other threads:[~2022-03-30 11:27 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-16 14:42 [RFC PATCH 0/4] rcu: Expedited GP polling improvements Frederic Weisbecker
2022-03-16 14:42 ` [PATCH 1/4] rcu: Remove needless polling work requeue for further waiter Frederic Weisbecker
2022-03-16 14:42 ` [PATCH 2/4] rcu: No need to reset the poll request flag before completion Frederic Weisbecker
2022-03-30 11:27 ` Frederic Weisbecker [this message]
2022-03-30 17:57 ` Paul E. McKenney
2022-03-16 14:42 ` [PATCH 3/4] rcu: Perform early sequence fetch for polling locklessly Frederic Weisbecker
2022-03-16 14:42 ` [PATCH 4/4] rcu: Name internal polling flag Frederic Weisbecker
2022-03-17 9:42 ` Neeraj Upadhyay
2022-03-17 15:33 ` Frederic Weisbecker
2022-03-22 2:11 ` Paul E. McKenney
2022-03-22 10:32 ` Frederic Weisbecker
2022-03-24 1:04 ` Paul E. McKenney
2022-03-24 1:19 ` Paul E. McKenney
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=20220330112752.GA1245830@lothringen \
--to=frederic@kernel.org \
--cc=boqun.feng@gmail.com \
--cc=joel@joelfernandes.org \
--cc=linux-kernel@vger.kernel.org \
--cc=paulmck@kernel.org \
--cc=quic_neeraju@quicinc.com \
--cc=uladzislau.rezki@sony.com \
/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