[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <6dbbdfa0-ca6b-425a-85a0-7c80041573fb@paulmck-laptop>
Date: Thu, 10 Jul 2025 18:00:21 -0700
From: "Paul E. McKenney" <paulmck@...nel.org>
To: Boqun Feng <boqun.feng@...il.com>
Cc: Breno Leitao <leitao@...ian.org>, Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...hat.com>, Will Deacon <will@...nel.org>,
Waiman Long <longman@...hat.com>, aeh@...a.com,
linux-kernel@...r.kernel.org, netdev@...r.kernel.org,
edumazet@...gle.com, jhs@...atatu.com, kernel-team@...a.com,
Erik Lundgren <elundgren@...a.com>,
Frederic Weisbecker <frederic@...nel.org>,
Neeraj Upadhyay <neeraj.upadhyay@...nel.org>,
Joel Fernandes <joel@...lfernandes.org>,
Uladzislau Rezki <urezki@...il.com>, rcu@...r.kernel.org
Subject: Re: [RFC PATCH 6/8] rcuscale: Allow rcu_scale_ops::get_gp_seq to be
NULL
On Sun, Apr 13, 2025 at 11:00:53PM -0700, Boqun Feng wrote:
> For synchronization mechanisms similar to RCU, there could be no "grace
> period" concept (e.g. hazard pointers), therefore allow
> rcu_scale_ops::get_gp_seq to be a NULL pointer for these cases, and
> simply treat started and finished grace period as 0.
>
> Signed-off-by: Boqun Feng <boqun.feng@...il.com>
Reviewed-by: Paul E. McKenney <paulmck@...nel.org>
> ---
> kernel/rcu/rcuscale.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/rcu/rcuscale.c b/kernel/rcu/rcuscale.c
> index 0f3059b1b80d..d9bff4b1928b 100644
> --- a/kernel/rcu/rcuscale.c
> +++ b/kernel/rcu/rcuscale.c
> @@ -568,8 +568,10 @@ rcu_scale_writer(void *arg)
> if (gp_exp) {
> b_rcu_gp_test_started =
> cur_ops->exp_completed() / 2;
> - } else {
> + } else if (cur_ops->get_gp_seq) {
> b_rcu_gp_test_started = cur_ops->get_gp_seq();
> + } else {
> + b_rcu_gp_test_started = 0;
> }
> }
>
> @@ -625,9 +627,11 @@ rcu_scale_writer(void *arg)
> if (gp_exp) {
> b_rcu_gp_test_finished =
> cur_ops->exp_completed() / 2;
> - } else {
> + } else if (cur_ops->get_gp_seq) {
> b_rcu_gp_test_finished =
> cur_ops->get_gp_seq();
> + } else {
> + b_rcu_gp_test_finished = 0;
> }
> if (shutdown) {
> smp_mb(); /* Assign before wake. */
> --
> 2.47.1
>
Powered by blists - more mailing lists