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.f...@gmail.com>
Reviewed-by: Paul E. McKenney <paul...@kernel.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 >