Messages in this thread | | | Date | Fri, 18 Jul 2008 21:58:47 -0700 | From | Arjan van de Ven <> | Subject | Re: [patch 1/3] fastboot: Create a "asynchronous" initlevel |
| |
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.
| |