• Lai Jiangshan's avatar
    init,cpuset: fix initialize order · 759ee091
    Lai Jiangshan authored
    Impact: cpuset_wq should be initialized after init_workqueues()
    
    When I read /debugfs/tracing/trace_stat/workqueues,
    I got this:
    
     # CPU  INSERTED  EXECUTED   NAME
     # |      |         |          |
    
       0      0          0       cpuset
       0    285        285       events/0
       0      2          2       work_on_cpu/0
       0   1115       1115       khelper
       0    325        325       kblockd/0
       0      0          0       kacpid
       0      0          0       kacpi_notify
       0      0          0       ata/0
       0      0          0       ata_aux
       0      0          0       ksuspend_usbd
       0      0          0       aio/0
       0      0          0       nfsiod
       0      0          0       kpsmoused
       0      0          0       kstriped
       0      0          0       kondemand/0
       0      1          1       hid_compat
       0      0          0       rpciod/0
    
       1     64         64       events/1
       1      2          2       work_on_cpu/1
       1      5          5       kblockd/1
       1      0          0       ata/1
       1      0          0       aio/1
       1      0          0       kondemand/1
       1      0          0       rpciod/1
    
    I found "cpuset" is at the earliest.
    
    I found a create_singlethread_workqueue() is earlier than
    init_workqueues():
    
    kernel_init()
    ->cpuset_init_smp()
      ->create_singlethread_workqueue()
    ->do_basic_setup()
      ->init_workqueues()
    
    I think it's better that create_singlethread_workqueue() is called
    after workqueue subsystem has been initialized.
    Signed-off-by: default avatarLai Jiangshan <laijs@cn.fujitsu.com>
    Acked-by: default avatarSteven Rostedt <srostedt@redhat.com>
    Acked-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
    Cc: Paul Menage <menage@google.com>
    Cc: miaoxie <miaox@cn.fujitsu.com>
    Cc: Li Zefan <lizf@cn.fujitsu.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    LKML-Reference: <49C9F416.1050707@cn.fujitsu.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    759ee091
main.c 21.3 KB