On Thu, 2010-09-09 at 16:43 -0600, Moore, Eric wrote: > On Sunday, September 05, 2010 10:35 AM, James Bottomley wrote: > > On Wed, 2010-08-04 at 14:04 +0530, Kashyap, Desai wrote: > > > Add support in driver so it will wait for discovery to complete > > > before returning from the send_port_enable routine. There are some > > > cases where firmware is doing discovery after port enable completes. > > > When it does this, the driver will not have all the devices in the > > > sas_device_init_list list prior to calling the sort routine for > > reporting > > > boot devices to OS. > > > > > > This patch is required so the driver is waiting for all the events to > > > be processed in the hot plug worker thread prior to reporting them to > > the > > > OS. > > > > > > (1) The driver will wait for port enable to complete > > > (2) Wait for the first discovery stop event > > > (3) Wait an additional 500ms in case there are additional discoveries > > > (4) process device list -> reporting devcies to OS > > > > Why is there any need to wait and sort at all? If you just report the > > devices as hotplug sees them, boot will be much faster (especially for > > root devices). > > > > IMO, this patch is really needed. Without it you probably will not be > able to boot after a fresh installation of OS when there are multiple > drives. But that's an installer problem, not a kernel one. > The issue is Red Hat or SuSE is going to place the new OS on the > first reported drive, e.g. /dev/sda. This boot drive information is > passed from the BIOS to the driver via a configuration page called > bios page 2. I think both installers already take this into account: grub finds it when it builds the mapping table for the first time. > The driver needs to wait for all firmware to complete discovery, > then search for boot device as indicated in the config page, then > report it first. Without the patch, there is no guarantee which drive > or raid volume is getting reported first. In other words the device > driver could of reported bios drive located at 0x83 as /dev/sda, > instead of 0x80, then when you reboot, the BIOS is not finding boot > partition. The end user can select the boot device by going into the > BIOS configuration utility; e.g. control C. But you don't need it to be reported first. The default install on both SLES and RHEL (and Fedora and openSUSE) is by label. So once we get the boot drive from the mapping, we build its label into the grub config and fstab files and we always run from it, regardless of the order it appears in the bootup. James -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html