Messages in this thread | | | Date | Wed, 15 Apr 2009 10:06:17 -0700 | From | VomLehn <> | Subject | Re: USB storage no-boot regression (bisected) |
| |
On Wed, Apr 15, 2009 at 11:49:45AM -0400, Mark Lord wrote: > Alan Stern wrote: >> On Wed, 15 Apr 2009, Alan Cox wrote: >> >>> Why should every user suffer a slower boot and a poorer resume time ? >>> >>> Instead make the root fs mounting look like this >>> >>> >>> while(my_rootfs_hasnt_appeared_and_i_am_sad()) { >>> wait_on(&new_disk_discovery); >>> } >>> >>> and poke the queue whenever we add a relevant device. >>> >>> That way if you are booting off an initrd you can finish the SATA probe >>> in parallel to getting userspace ticking over. >>> >>> On what is nowdays essentially a hot plug system it all needs turning >>> this way up - eg RAID volumes should assemble and come online as the >>> drives are discovered not at some fixed point later in userspace. >> >> Indeed, something like this should also be used for >> resume-from-hibernation, to wait for the swap device. > .. > > It just needs a way to set a finite timeout, so that server room > equipment can auto-panic-reboot and try again if a device has died.
The problem with USB root devices is the same one I brought up a couple of weeks ago--faster booting means that USB boot devices fail. We now have problems with three different classes of devices:
o Disks o Network devices o Serial consoles
Saying that we were "lucky" that things worked before is no help and you should be aware that it ticks people off. I agree that this is not a USB problem, but there is a *very* real problem:
The work to decrease boot time has exposed race conditions that always existed, but are now making the kernel less usable.
So, instead of spending time denying that there is a USB problem, let's focus on solve the boot device synchronization problem. I have already posted a (probably incomplete, possibly wrong) patch to synchronize console initialization. We need to do the same for other boot devices, too.
David VomLehn
| |