mirror of
https://github.com/adulau/aha.git
synced 2024-12-27 11:16:11 +00:00
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: Ingo Molnar <mingo@elte.hu> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
29e2035bdd
commit
7db905e636
1 changed files with 1 additions and 1 deletions
|
@ -451,6 +451,7 @@ static noinline void __init_refok rest_init(void)
|
||||||
{
|
{
|
||||||
int pid;
|
int pid;
|
||||||
|
|
||||||
|
rcu_scheduler_starting();
|
||||||
kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND);
|
kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND);
|
||||||
numa_default_policy();
|
numa_default_policy();
|
||||||
pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES);
|
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:
|
* at least once to get things moving:
|
||||||
*/
|
*/
|
||||||
init_idle_bootup_task(current);
|
init_idle_bootup_task(current);
|
||||||
rcu_scheduler_starting();
|
|
||||||
preempt_enable_no_resched();
|
preempt_enable_no_resched();
|
||||||
schedule();
|
schedule();
|
||||||
preempt_disable();
|
preempt_disable();
|
||||||
|
|
Loading…
Reference in a new issue