On Tuesday 25 of August 2009, you wrote: > On Tue, 2009-08-25 at 21:44 +0200, Arkadiusz Miskiewicz wrote: > > On Tuesday 25 of August 2009, James Bottomley wrote: > > > On Tue, 2009-08-25 at 21:24 +0200, Arkadiusz Miskiewicz wrote: > > > > What could be the reason for scsi_wait_scan not waiting untill all > > > > disks are found? > > > > > > > > I'm testing 2.6.30.5 on hardware with LSI Logic / Symbios Logic > > > > MegaRAID 530 SCSI 320-0X RAID controller and modprobe scsi_wait_scan > > > > finishes earlier than disks are found. > > > > > > > > My initrd (romfs) does: > > > > insmod /lib/modules/2.6.30.5-0.3/kernel/drivers/scsi/scsi_mod.ko > > > > insmod > > > > /lib/modules/2.6.30.5-0.3/kernel/drivers/scsi/megaraid/megaraid_mm.ko > > > > insmod > > > > /lib/modules/2.6.30.5-0.3/kernel/drivers/scsi/megaraid/megaraid_mbox. > > > >ko insmod /lib/modules/2.6.30.5-0.3/kernel/lib/crc-t10dif.ko > > > > insmod /lib/modules/2.6.30.5-0.3/kernel/drivers/scsi/sd_mod.ko > > > > insmod > > > > /lib/modules/2.6.30.5-0.3/kernel/drivers/scsi/scsi_wait_scan.ko > > > > insmod /lib/modules/2.6.30.5-0.3/kernel/fs/exportfs/exportfs.ko > > > > insmod /lib/modules/2.6.30.5-0.3/kernel/fs/xfs/xfs.ko > > > > if [ "${ROOT##/dev/}" != "${ROOT}" ]; then > > > > rootnr="$(busybox awk -v rootnode="${ROOT##/dev/}" '$4 == rootnode { > > > > print 256 * $1 + $2 }' /proc/partitions)" > > > > if [ -n "$rootnr" ]; then > > > > echo "$rootnr" > /proc/sys/kernel/real-root-dev > > > > fi > > > > > > > > > > > > Now if I add sleep few seconds or /bin/sh at the end of this initrd, > > > > then boot and then disks are detected properly and rootfs is mounted > > > > properly (after I exit from sh in case when /bin/sh is used). > > > > > > > > The question remains - why scsi_wait_scan doesn't wait? > > > > > > It's caused by the sd async patches. What's happening is wait_scan is > > > waiting until all the scans are complete, but now sd attachment may not > > > be completed by the time that happens. So, although you have a scanned > > > disk, you can't mount it without and attached sd driver. > > > > > > Hopefully when > > > all initrds are configured to wait until root appears, this problem > > > will go away. > > > > Uh, ugly. I'll disable SCSI_SCAN_ASYNC here then. > > That won't actually help: the sd async scan is a separate mechanism not > tied to that variable I assume there is no configurable way to disable this? > > > Anyway what's the point of scsi_wait_scan module if initrd is still > > required to wait until root appears? (unless current behaviour is broken > > behaviour meant to be fixed?) > > It was supposed to be an interim measure until the ditributions got > their act together for initrd booting by waiting for the root disk to > appear. It's just been "interim" for a bit longer than expected. Isn't kernel better place for this? Handling that in userspace is very complicated for such setups like fs on top of software raid where raid is assembled by UUID of devices etc, etc. Userspace will need to handle all weird cases to figure out what devices are needed (eg. parse mdadm config) to be able to wait for thsese and then go into next step. Are major distros actually handling this well? > James -- Arkadiusz Miśkiewicz PLD/Linux Team arekm / maven.pl http://ftp.pld-linux.org/ -- 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