Skip to contentSkip to conversation

scsi_wait_scan doesn't wait

DISCUSSION Michal Ludvig 3 participants 4 messages Oct 19, 2010 – Oct 21, 2010

lore
Share & tools
lore
#0 lore raw

Hi there,

I'm having a problem with 2.6.36-rc8+ on HP PARISC machine (HP 9000 RP3410) where I intend to wait for SCSI enumeration during boot before LVM2 kicks in and attempts to activate the root volume. I modprobe scsi_wait_scan in the initramdisk before lvm2 script is run. However the modprobe doesn't wait. I'm on Debian testing, fwiw.

[...]

[    2.368000] Freeing unused kernel memory: 252k freed
Loading, please wait...
[    3.028000] udev: starting version 160
[    4.104000] SCSI subsystem initialized
[    4.592000] sym0: <1010-66> rev 0x1 at pci 0000:20:01.0 irq 69
[    4.668000] sym0: No NVRAM, ID 7, Fast-80, LVD, parity checking
[    4.700000] sym0: SCSI BUS has been reset.
[    4.708000] scsi0 : sym-2.2.3
[    4.868000] sym1: <1010-66> rev 0x1 at pci 0000:20:01.1 irq 70
[    4.868000] sym1: No NVRAM, ID 7, Fast-80, LVD, parity checking
[    4.904000] sym1: SCSI BUS has been reset.
[    4.908000] scsi1 : sym-2.2.3
[    5.068000] sym2: <1010-66> rev 0x1 at pci 0000:80:01.0 irq 72
[    5.072000] sym2: No NVRAM, ID 7, Fast-80, LVD, parity checking
[    5.108000] sym2: SCSI BUS has been reset.
[    5.112000] scsi2 : sym-2.2.3
[    5.276000] sym3: <1010-66> rev 0x1 at pci 0000:80:01.1 irq 73
[    5.276000] sym3: No NVRAM, ID 7, Fast-80, LVD, parity checking
[    5.312000] sym3: SCSI BUS has been reset.
[    5.316000] scsi3 : sym-2.2.3

Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... SCSI: Waiting to settle...

######### here comes modprobe scsi_wait_scan #########

SCSI: done
done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top
... [ 6.496000] device-mapper: uevent: version 1.0.3

[    6.496000] device-mapper: ioctl: 4.18.0-ioctl (2010-06-29)

initialised: [email protected]
Volume group "lethal" not found
Skipping volume group lethal
Unable to find LVM volume lethal/root
done.
Begin: Waiting for root file system ... [ 7.728000] scsi 0:0:0:0:
Direct-Access HP 36.4G ST336754LC HPC2 PQ: 0 ANSI: 3

[    7.728000] scsi target0:0:0: tagged command queuing enabled, command
queue depth 16.
[    7.728000] scsi target0:0:0: Beginning Domain Validation
[    7.740000] scsi target0:0:0: FAST-80 WIDE SCSI 160.0 MB/s DT (12.5
ns, offset 31)
[    7.748000] scsi target0:0:0: Ending Domain Validation
[    7.752000] scsi 0:0:1:0: Direct-Access     HP 36.4G MAS3367NC
 HPC3 PQ: 0 ANSI: 3
[    7.752000] scsi target0:0:1: tagged command queuing enabled, command
queue depth 16.
[    7.760000] scsi target0:0:1: Beginning Domain Validation
[    7.764000] scsi target0:0:1: FAST-80 WIDE SCSI 160.0 MB/s DT (12.5
ns, offset 31)
[    7.772000] scsi target0:0:1: Ending Domain Validation
[   11.864000] sd 0:0:0:0: [sda] 71132960 512-byte logical blocks: (36.4
GB/33.9 GiB)
[   11.864000] sd 0:0:1:0: [sdb] 71132960 512-byte logical blocks: (36.4
GB/33.9 GiB)
[   11.868000] sd 0:0:0:0: [sda] Write Protect is off
[   11.892000] sd 0:0:1:0: [sdb] Write Protect is off
[   11.900000] sd 0:0:0:0: [sda] Write cache: enabled, read cache:
enabled, supports DPO and FUA
[   11.900000] sd 0:0:1:0: [sdb] Write cache: enabled, read cache:
enabled, supports DPO and FUA
[   11.924000]  sda: unknown partition table
[   11.940000]  sdb: sdb1 sdb2 sdb3
[   11.944000] sd 0:0:0:0: [sda] Attached SCSI disk
[   11.964000] sd 0:0:1:0: [sdb] Attached SCSI disk

done.
Gave up waiting for root device. Common problems:
- Boot args (cat /proc/cmdline)
- Check rootdelay= (did the system wait long enough?)
- Check root= (did the system wait for the right device?)
- Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/mapper/lethal-root does not exist. Dropping to a shell!

Apparently /dev/sda and /dev/sdb were discovered long after scsi_wait_scan was loaded.

Here are the relevant modules:
[...]

ext3                  203543  2
jbd                    63990  1 ext3
dm_mod                112954  9
scsi_wait_scan           983  0
zalon7xx               38131  0
lasi700                 2427  0
53c700                 39777  1 lasi700
hilkbd                  5901  0
sd_mod                 49383  3
crc_t10dif              1564  1 sd_mod
sym53c8xx             104303  2
scsi_transport_spi     34731  3 zalon7xx,53c700,sym53c8xx
scsi_mod              193802  7

libata,zalon7xx,lasi700,53c700,sd_mod,sym53c8xx,scsi_transport_spi

When I unset CONFIG_SCSI_SCAN_ASYNC it works just fine and all the disks are found in time for LVM.

Is that a bug in the SCSI driver? Or am I doing something wrong? It's not a recent regression, at least 2.6.35 behaves the same on that machine.

Thanks!

Michal

#1 lore raw
Quoted 5 lines · Michal Ludvig

I'm having a problem with 2.6.36-rc8+ on HP PARISC machine (HP 9000 RP3410) where I intend to wait for SCSI enumeration during boot before LVM2 kicks in and attempts to activate the root volume. I modprobe scsi_wait_scan in the initramdisk before lvm2 script is run. However the modprobe doesn't wait. I'm on Debian testing, fwiw.

If you're interested in helping, the best thing you could do is back up to a kernel that works and then try to track down what commit broke the wait scan. It's a bit tedious, but fairly easy.

Cheers,
Carlos.

#2 lore raw
Quoted 9 lines · Carlos O'Donell
Quoted 5 lines · Michal Ludvig

I'm having a problem with 2.6.36-rc8+ on HP PARISC machine (HP 9000 RP3410) where I intend to wait for SCSI enumeration during boot before LVM2 kicks in and attempts to activate the root volume. I modprobe scsi_wait_scan in the initramdisk before lvm2 script is run. However the modprobe doesn't wait. I'm on Debian testing, fwiw.

If you're interested in helping, the best thing you could do is back up to a kernel that works and then try to track down what commit broke the wait scan. It's a bit tedious, but fairly easy.

Yeah, I know. However a kernel rebuild takes nearly 2 hours on that machine so it may be a couple of months before I find the commit ;-) I'll see if I can come up with an automated process for that.

Michal

#3 lore raw
Quoted 11 lines · Michal Ludvig
Quoted 9 lines · Carlos O'Donell
Quoted 5 lines · Michal Ludvig

I'm having a problem with 2.6.36-rc8+ on HP PARISC machine (HP 9000 RP3410) where I intend to wait for SCSI enumeration during boot before LVM2 kicks in and attempts to activate the root volume. I modprobe scsi_wait_scan in the initramdisk before lvm2 script is run. However the modprobe doesn't wait. I'm on Debian testing, fwiw.

If you're interested in helping, the best thing you could do is back up to a kernel that works and then try to track down what commit broke the wait scan. It's a bit tedious, but fairly easy.

Yeah, I know. However a kernel rebuild takes nearly 2 hours on that machine so it may be a couple of months before I find the commit ;-) I'll see if I can come up with an automated process for that.

Hi Michal,

I'd propose that you use a cross-compiler (i686 to hppa) instead.
Then you can TFTP-boot the built kernel from your PC.
This is what I do, and it speeds up everything a lot and it's not too hard to set it up.

Helge