Messages in this thread |  | | Date | Fri, 30 Jul 2010 16:55:22 -0700 | | From | Andrew Morton <> | | Subject | Re: [patch 1/2] workqueue: mark init_workqueues() as early_initcall() |
| |
On Fri, 30 Jul 2010 14:57:37 -0700 Suresh Siddha <suresh.b.siddha@intel.com> wrote:
> Mark init_workqueues() as early_initcall() and thus it will be initialized > before smp bringup. init_workqueues() registers for the hotcpu notifier > and thus it should cope with the processors that are brought online after > the workqueues are initialized. > > x86 smp bringup code uses workqueues and uses a workaround for the > cold boot process (as the workqueues are initialized post smp_init()). > Marking init_workqueues() as early_initcall() will pave the way for > cleaning up this code. >
I sure hope this has been tested against linux-next. kernel/workqueue.c has been vastly changed and -tip doesn't know about that. linux-next should include -tip and is hence a better tree to develop and test against.
AFAICT the main thing which needs checking is that the new init_workqueues() doesn't do anything which requires that sched_init_smp() has been executed.
The patch otherwise looks OK and killing that hack in the x86 code was most merciful.
for_each_gcwq_cpu(), for_each_online_gcwq_cpu() and for_each_cwq_cpu() make me cry.
|  |