diff options
author | Tal Shorer <tal.shorer@gmail.com> | 2017-11-03 11:27:49 -0400 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2017-11-27 11:56:57 -0500 |
commit | 7d229c668a114e80d6be62b00e21a73bdd9ba7b3 (patch) | |
tree | d1b9bb3f661e7d8c53fc6491b29f5ad4bfdd4977 | |
parent | 4fbd8d194f06c8a3fd2af1ce560ddb31f7ec8323 (diff) |
main: kernel_start: move housekeeping_init() before workqueue_init_early()
This is needed in order to allow the unbound workqueue to take
housekeeping cpus into accounty
Signed-off-by: Tal Shorer <tal.shorer@gmail.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
-rw-r--r-- | init/main.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/init/main.c b/init/main.c index dfec3809e740..e96e3a14533c 100644 --- a/init/main.c +++ b/init/main.c | |||
@@ -589,6 +589,12 @@ asmlinkage __visible void __init start_kernel(void) | |||
589 | radix_tree_init(); | 589 | radix_tree_init(); |
590 | 590 | ||
591 | /* | 591 | /* |
592 | * Set up housekeeping before setting up workqueues to allow the unbound | ||
593 | * workqueue to take non-housekeeping into account. | ||
594 | */ | ||
595 | housekeeping_init(); | ||
596 | |||
597 | /* | ||
592 | * Allow workqueue creation and work item queueing/cancelling | 598 | * Allow workqueue creation and work item queueing/cancelling |
593 | * early. Work item execution depends on kthreads and starts after | 599 | * early. Work item execution depends on kthreads and starts after |
594 | * workqueue_init(). | 600 | * workqueue_init(). |
@@ -605,7 +611,6 @@ asmlinkage __visible void __init start_kernel(void) | |||
605 | early_irq_init(); | 611 | early_irq_init(); |
606 | init_IRQ(); | 612 | init_IRQ(); |
607 | tick_init(); | 613 | tick_init(); |
608 | housekeeping_init(); | ||
609 | rcu_init_nohz(); | 614 | rcu_init_nohz(); |
610 | init_timers(); | 615 | init_timers(); |
611 | hrtimers_init(); | 616 | hrtimers_init(); |