torture: Move rcutorture_sched_setaffinity() out of rcutorture
authorPaul E. McKenney <paulmck@kernel.org>
Mon, 31 Jul 2023 20:10:34 +0000 (13:10 -0700)
committerFrederic Weisbecker <frederic@kernel.org>
Sun, 24 Sep 2023 15:24:01 +0000 (17:24 +0200)
The rcutorture_sched_setaffinity() function is needed by locktorture,
so move its declaration from rcu.h to torture.h and rename it to the
more generic torture_sched_setaffinity() name.

Please note that use of this function is still restricted to torture
tests, and of those, currently only rcutorture and locktorture.

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
include/linux/torture.h
kernel/rcu/rcu.h
kernel/rcu/rcutorture.c
kernel/rcu/update.c

index 017f0f710815a88df9d7e1277ce61dc269c1218a..c98d0c83d117cb6302f6a2bab21b892276569c27 100644 (file)
@@ -121,10 +121,15 @@ void _torture_stop_kthread(char *m, struct task_struct **tp);
 #define torture_stop_kthread(n, tp) \
        _torture_stop_kthread("Stopping " #n " task", &(tp))
 
+/* Scheduler-related definitions. */
 #ifdef CONFIG_PREEMPTION
 #define torture_preempt_schedule() __preempt_schedule()
 #else
 #define torture_preempt_schedule()     do { } while (0)
 #endif
 
+#if IS_ENABLED(CONFIG_RCU_TORTURE_TEST) || IS_MODULE(CONFIG_RCU_TORTURE_TEST) || IS_ENABLED(CONFIG_LOCK_TORTURE_TEST) || IS_MODULE(CONFIG_LOCK_TORTURE_TEST)
+long torture_sched_setaffinity(pid_t pid, const struct cpumask *in_mask);
+#endif
+
 #endif /* __LINUX_TORTURE_H */
index 98e13be411afd3fe2a28285c2ba278a06623fa27..567bd3d72e3937d667f73dae3f40ed4eb7c00f02 100644 (file)
@@ -568,10 +568,6 @@ void do_trace_rcu_torture_read(const char *rcutorturename,
 static inline void rcu_gp_set_torture_wait(int duration) { }
 #endif
 
-#if IS_ENABLED(CONFIG_RCU_TORTURE_TEST) || IS_MODULE(CONFIG_RCU_TORTURE_TEST)
-long rcutorture_sched_setaffinity(pid_t pid, const struct cpumask *in_mask);
-#endif
-
 #ifdef CONFIG_TINY_SRCU
 
 static inline void srcutorture_get_gp_data(enum rcutorture_type test_type,
index ade42d6a9d9b64860b8f51b33625703fc2ea598c..7e82fb887d09af35434a4776de3562c99ce0937f 100644 (file)
@@ -810,7 +810,7 @@ static void synchronize_rcu_trivial(void)
        int cpu;
 
        for_each_online_cpu(cpu) {
-               rcutorture_sched_setaffinity(current->pid, cpumask_of(cpu));
+               torture_sched_setaffinity(current->pid, cpumask_of(cpu));
                WARN_ON_ONCE(raw_smp_processor_id() != cpu);
        }
 }
index 9d3c2e6ba667a873c225a6af004305e722bbdb43..c534d6806d3d5726322d5da634224cd6897293cc 100644 (file)
@@ -525,17 +525,17 @@ EXPORT_SYMBOL_GPL(do_trace_rcu_torture_read);
        do { } while (0)
 #endif
 
-#if IS_ENABLED(CONFIG_RCU_TORTURE_TEST) || IS_MODULE(CONFIG_RCU_TORTURE_TEST)
+#if IS_ENABLED(CONFIG_RCU_TORTURE_TEST) || IS_MODULE(CONFIG_RCU_TORTURE_TEST) || IS_ENABLED(CONFIG_LOCK_TORTURE_TEST) || IS_MODULE(CONFIG_LOCK_TORTURE_TEST)
 /* Get rcutorture access to sched_setaffinity(). */
-long rcutorture_sched_setaffinity(pid_t pid, const struct cpumask *in_mask)
+long torture_sched_setaffinity(pid_t pid, const struct cpumask *in_mask)
 {
        int ret;
 
        ret = sched_setaffinity(pid, in_mask);
-       WARN_ONCE(ret, "%s: sched_setaffinity() returned %d\n", __func__, ret);
+       WARN_ONCE(ret, "%s: sched_setaffinity(%d) returned %d\n", __func__, pid, ret);
        return ret;
 }
-EXPORT_SYMBOL_GPL(rcutorture_sched_setaffinity);
+EXPORT_SYMBOL_GPL(torture_sched_setaffinity);
 #endif
 
 #ifdef CONFIG_RCU_STALL_COMMON