lkml.org 
[lkml]   [2008]   [Jul]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [patch 1/3] fastboot: Create a "asynchronous" initlevel
    From
    Date
    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.....
    >

    Your right .. You would think there wouldn't be expectations on the
    ordering, but certain sub-systems do have dependencies .. I think it's
    really a problem in our initcall system where I've seen lots of initcall
    problems popup when drivers select "module_init()" but when the driver
    is built in they loose the mandatory module load ordering (shows up in
    allyesconfig). Then if the ordering gets mixed in the initcall you end
    up with failures.

    Daniel



    \
     
     \ /
      Last update: 2008-07-19 06:55    [W:3.458 / U:0.204 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site