From: Andrew Morton on
On Fri, 30 Jul 2010 14:57:37 -0700
Suresh Siddha <suresh.b.siddha(a)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.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Suresh Siddha on
On Fri, 2010-07-30 at 16:55 -0700, Andrew Morton wrote:
> On Fri, 30 Jul 2010 14:57:37 -0700
> Suresh Siddha <suresh.b.siddha(a)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.

hmm.. too many changes in linux-next.

Yes, as far as these patches are concerned, they work against linux-next
aswell. Just posted -v2 which is on top of linux-next. ia64 also had the
same issue, addressed in -v2 aswell.

thanks,
suresh



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/