Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane
From: Jeff Garzik <jeff-o2qLIJkoznsdnm+yROfE0A <at> public.gmane.org>
Subject: USB storage no-boot regression (bisected)
Newsgroups: gmane.linux.usb.general
Date: Tuesday 14th April 2009 21:06:14 UTC (over 8 years ago)
Once of the x86-64 machines I use for testing runs off of two 2GB USB 
flash drives, one for Fedora 10 userland, and one for kernel repository 
+ builds.

It boots correctly in 2.6.27, but fails with the same symptoms in 
2.6.28, 2.6.29 and 2.6.30-rc1:

	1) The kernel boots
	2) After time passes, kernel begins executing initramfs
	   userland
	3) the kernel prints out probe messages for the USB keyboard,
	   SCSI probe messages for the two USB flash drives

Or IOW, the keyboard and two SCSI drives appear after initramfs begins 
booting.  And this is for drivers built into the kernel (though same 
behavior with modules).

This no-boot regression is 100% reproducible, and neatly bisects down to

> commit 8520f38099ccfdac2147a0852f84ee7a8ee5e197
> Author: Alan Stern

> Date:   Mon Sep 22 14:44:26 2008 -0400
> 
>     USB: change hub initialization sleeps to delayed_work
>     
>     This patch (as1137) changes the hub_activate() routine, replacing the
>     power-power-up and debounce delays with delayed_work calls.  The idea
>     is that on systems where the USB stack is compiled into the kernel
>     rather than built as modules, these delays will no longer block the
>     boot thread.  At least 100 ms is saved for each root hub, which can
>     add up to a significant savings in total boot time.
>     
>     Arjan van de Ven was very pleased to see that this shaved 700 ms off
>     his computer's boot time.  Since his total boot time is on the order
>     of two seconds, the improvement is considerable.
>     
>     Signed-off-by: Alan Stern

>     Tested-by: Arjan van de Ven

>     Signed-off-by: Greg Kroah-Hartman
<[email protected]>


My preliminary guess is that this made things --too-- asynchronous, and 
for some reason userland begins executing before the SCSI core 
initializes the USB storage as Linux block devices.

In any case, I cannot boot because of the above commit :)

	Jeff
 
CD: 15ms