Not logged in
Log in now
Create an account
Subscribe to LWN
LWN.net Weekly Edition for December 5, 2013
Deadline scheduling: coming soon?
LWN.net Weekly Edition for November 27, 2013
ACPI for ARM?
LWN.net Weekly Edition for November 21, 2013
the problem is that you have _no_ way of knowing if you have waited long enough. all you can do is to pick a number and guess.
it may be that the USB device was powered on at the same time as the computer, and until it finishes booting itself (and unknown time period), it can't announce it's existence.
USB and fast booting
Posted May 3, 2009 16:36 UTC (Sun) by giraffedata (subscriber, #1954)
also, waiting for the USB driver to initialize isn't enough. you need to wait an unknown amount of time after the driver is initialized for all the devices to announce themselves.
The suggestion was that the driver not consider itself initialized until it had waited a prescribed amount of time for devices to announce themselves.
That's a problem, and a big one, but it's not the immediate one. The immediate problem is that Linux already picked a number (100 ms) and it works for many people, but the new decoupling of USB driver initialization from mounting the root filesystem makes even that strategy fail. Hence the suggestion that the wait somehow be made part of mounting the USB root filesystem.
I think even if you could know when every device had reported in, it wouldn't solve the problem. Who says the root device has to be plugged in before the kernel begins running? The reason USB doesn't provide for definitive enumeration of devices is that it is designed for a fluid network, so maybe mount needs to wait for the operator to get around to plugging in the device as well.
Posted May 3, 2009 16:44 UTC (Sun) by dlang (✭ supporter ✭, #313)
other buses that can tell that everything that exist has reported in do not have the same problem, even in the async mode they can work because they can delay long enough for everything to report, without having to wait any longer than that.
it's the need to wait unproductivly that is the problem here
Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds