Re: [patch 1/3] fastboot: Create a "asynchronous" initlevel

Arjan van de Ven
2008-07-19T04:58:58Z

On Fri, 18 Jul 2008 21:11:37 -0700
Daniel Walker <dwalker@mvista.com> wrote:

> On Fri, 2008-07-18 at 20:44 -0700, Arjan van de Ven wrote:
> > On Fri, 18 Jul 2008 18:22:20 -0700
> > Daniel Walker <dwalker@mvista.com> wrote:
> >
> > > On Fri, 2008-07-18 at 15:16 -0700, Arjan van de Ven wrote:
> > > > +static void __init do_initcalls(void)
> > > > +{
> > > > + initcall_t *call;
> > > > + static DECLARE_WORK(async_work, do_async_initcalls);
> > > > + int phase = 0; /* 0 = levels 0 - 6, 1 = level 6a, 2 =
> > > > after level 6a */
> > > > +
> > > > + async_init_wq =
> > > > create_singlethread_workqueue("kasyncinit"); +
> > >
> > > Could you spawning one thread per cpu, and queuing the work
> > > evenly?
> >
> > not without loosing the ordering.....
> >
>
> I don't think there is any expectation for any given initcall to have
> a special ordering .. There is an ordering expectation for say
> initcall 6 runs before 6a , but not within the initcall ..
>

that's not right.. device numbering very highly depends on that.
the specified ordering is makefile link order.