]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
refscale: Exercise DEFINE_STATIC_SRCU_FAST() and init_srcu_struct_fast()
authorPaul E. McKenney <paulmck@kernel.org>
Sun, 2 Nov 2025 22:49:41 +0000 (14:49 -0800)
committerFrederic Weisbecker <frederic@kernel.org>
Thu, 27 Nov 2025 13:22:41 +0000 (14:22 +0100)
This commit updates the initialization for the "srcu-fast" scale
type to use DEFINE_STATIC_SRCU_FAST() when reader_flavor is equal to
SRCU_READ_FLAVOR_FAST.

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: <bpf@vger.kernel.org>
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
kernel/rcu/refscale.c

index 19841704d8f5796941c1578c58df19a848b6e611..ece77f6d055b855cdd5a483bfea3e987e5165c40 100644 (file)
@@ -184,6 +184,7 @@ static const struct ref_scale_ops rcu_ops = {
 
 // Definitions for SRCU ref scale testing.
 DEFINE_STATIC_SRCU(srcu_refctl_scale);
+DEFINE_STATIC_SRCU_FAST(srcu_fast_refctl_scale);
 static struct srcu_struct *srcu_ctlp = &srcu_refctl_scale;
 
 static void srcu_ref_scale_read_section(const int nloops)
@@ -216,6 +217,12 @@ static const struct ref_scale_ops srcu_ops = {
        .name           = "srcu"
 };
 
+static bool srcu_fast_sync_scale_init(void)
+{
+       srcu_ctlp = &srcu_fast_refctl_scale;
+       return true;
+}
+
 static void srcu_fast_ref_scale_read_section(const int nloops)
 {
        int i;
@@ -240,7 +247,7 @@ static void srcu_fast_ref_scale_delay_section(const int nloops, const int udl, c
 }
 
 static const struct ref_scale_ops srcu_fast_ops = {
-       .init           = rcu_sync_scale_init,
+       .init           = srcu_fast_sync_scale_init,
        .readsection    = srcu_fast_ref_scale_read_section,
        .delaysection   = srcu_fast_ref_scale_delay_section,
        .name           = "srcu-fast"