lkml.org 
[lkml]   [2009]   [Feb]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] [PATCH/RESEND] driver core: remove polling for driver_probe_done(v4)
On Sat, 21 Feb 2009 09:28:34 +0800
Ming Lei <tom.leiming@gmail.com> wrote:
> >
> > you broke it i this revision though
> >
> >> -int wait_for_device_probe(void)
> >> +void driver_wait_probe_done(void)
> >> {
> >> - /* wait for the known devices to complete their probing */
> >> - while (driver_probe_done() != 0)
> >> - msleep(100);
> >> - async_synchronize_full();
> >> - return 0;
> >> + pr_debug("%s: probe_count = %d\n", __func__,
> >> + atomic_read(&probe_count));
> >> + wait_event(probe_waitqueue, atomic_read(&probe_count) == 0);
> >
> >
> > You lost the async_synchronize_full()!
>
> I patch patch-v2.6.29-rc5-next-20090220.gz against v2.6.29-rc5
> directly to build
> the linux-next tree(it is quicker for me),so I don't know why you add
> async_synchronize_full()
> in driver core and seems it doesn't matter with driver core.

I do not add it; you removed it!
(it is needed to synchronize both the pending probes AND the
asynchronous work; that is the point of the consolidation patches to do
all of this in one place)

>
> Would you mind that I resend a patch,which does
> async_synchronize_full() after
> driver_wait_probe_done() in do_mounts.c or do_mounts_md.c ?

that is not the right solution. The patch that introduced
wait_for_device_probe() was there to make sure it all happens in one
central location. To then decentralize this 2nd function call to all
locations that call the function does not make sense to me.....

--
Arjan van de Ven Intel Open Source Technology Centre
For development, discussion and tips for power savings,
visit http://www.lesswatts.org


\
 
 \ /
  Last update: 2009-02-21 05:31    [from the cache]
©2003-2011 Jasper Spaans