Re: [patch 5/3] fastboot: sync the async execution before late_initcall and move level 6s (sync) first

Simon Arlott
2008-07-20T21:23:38Z

On 20/07/08 22:14, Daniel Walker wrote:
> On Sun, 2008-07-20 at 09:00 -0700, Arjan van de Ven wrote:
>> @@ -775,6 +776,11 @@ static void __init do_initcalls(void)
>> }
>> if (phase == 1 && call >= __async_initcall_end)
>> phase = 2;
>> + if (phase == 2 && call >= __device_initcall_end) {
>> + phase = 3;
>> + /* make sure all async work is done before level 7 */
>> + flush_workqueue(async_init_wq);
>> + }
>> if (phase != 1)
>> do_one_initcall(*call);
>> }
>
> Did this impact the boot time improvements at all?

The USB HCD initcalls take so little time to complete (100ms
each) that ensuring they have finished makes no difference.

USB devices get detected after those initcalls finish in
parallel with the rest of the boot process (and there's
about 1.5s before the first USB device driver initcall
runs).

--
Simon Arlott