diff options
| author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2021-03-10 15:09:02 +0100 |
|---|---|---|
| committer | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2021-03-12 20:50:29 +0100 |
| commit | 13357aa7f9e394ed60d2c424fb94671dc448bd44 (patch) | |
| tree | 671c0ded268a925865402c97c8db8c276d15ad05 | |
| parent | 082feec4b322008c3d35fa0e110017fa437aab19 (diff) | |
| download | linux-rt-devel-13357aa7f9e394ed60d2c424fb94671dc448bd44.tar.gz | |
rcu: Delay RCU-selftests
Delay RCU-selftests until ksoftirqd is up and running.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
| -rw-r--r-- | init/main.c | 7 | ||||
| -rw-r--r-- | kernel/rcu/tasks.h | 9 |
2 files changed, 9 insertions, 7 deletions
diff --git a/init/main.c b/init/main.c index 53b278845b886..ff77379e2316e 100644 --- a/init/main.c +++ b/init/main.c @@ -1499,6 +1499,12 @@ void __init console_on_rootfs(void) fput(file); } +#ifdef CONFIG_PROVE_RCU +void rcu_tasks_initiate_self_tests(void); +#else +static inline void rcu_tasks_initiate_self_tests(void) {} +#endif + static noinline void __init kernel_init_freeable(void) { /* @@ -1524,6 +1530,7 @@ static noinline void __init kernel_init_freeable(void) rcu_init_tasks_generic(); do_pre_smp_initcalls(); + rcu_tasks_initiate_self_tests(); lockup_detector_init(); smp_init(); diff --git a/kernel/rcu/tasks.h b/kernel/rcu/tasks.h index af7c19439f4ec..3384c0bc6b218 100644 --- a/kernel/rcu/tasks.h +++ b/kernel/rcu/tasks.h @@ -1259,7 +1259,7 @@ static void test_rcu_tasks_callback(struct rcu_head *rhp) rttd->notrun = true; } -static void rcu_tasks_initiate_self_tests(void) +void rcu_tasks_initiate_self_tests(void) { pr_info("Running RCU-tasks wait API self tests\n"); #ifdef CONFIG_TASKS_RCU @@ -1296,9 +1296,7 @@ static int rcu_tasks_verify_self_tests(void) return ret; } late_initcall(rcu_tasks_verify_self_tests); -#else /* #ifdef CONFIG_PROVE_RCU */ -static void rcu_tasks_initiate_self_tests(void) { } -#endif /* #else #ifdef CONFIG_PROVE_RCU */ +#endif /* #ifdef CONFIG_PROVE_RCU */ void __init rcu_init_tasks_generic(void) { @@ -1313,9 +1311,6 @@ void __init rcu_init_tasks_generic(void) #ifdef CONFIG_TASKS_TRACE_RCU rcu_spawn_tasks_trace_kthread(); #endif - - // Run the self-tests. - rcu_tasks_initiate_self_tests(); } #else /* #ifdef CONFIG_TASKS_RCU_GENERIC */ |
