Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7db905e6 authored by Paul E. McKenney's avatar Paul E. McKenney Committed by Ingo Molnar
Browse files

rcu: Move end of special early-boot RCU operation earlier



Ingo was getting warnings from rcu_scheduler_starting()
indicating that context switches had occurred before RCU ended
its special early-boot handling of grace periods.

This is a dangerous condition, as it indicates that RCU might
have prematurely ended grace periods.  This exploratory fix
moves rcu_scheduler_starting() earlier in boot.

Reported-by: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 29e2035b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -451,6 +451,7 @@ static noinline void __init_refok rest_init(void)
{
	int pid;

	rcu_scheduler_starting();
	kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND);
	numa_default_policy();
	pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES);
@@ -462,7 +463,6 @@ static noinline void __init_refok rest_init(void)
	 * at least once to get things moving:
	 */
	init_idle_bootup_task(current);
	rcu_scheduler_starting();
	preempt_enable_no_resched();
	schedule();
	preempt_disable();