Re: Remove scsi_wait_scan module

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, May 31, 2012 at 10:42 AM, James Bottomley
<James.Bottomley@xxxxxxxxxxxxxxxxxxxxx> wrote:
> If there are errors on the bus, the chances are the devices are missed
> by the initial discover and appear later anyway, so neither approach is
> foolproof.  I like the how long is the user prepared to wait approach vs
> how long does it take to complete error recovery simply because mostly
> if the device doesn't appear within that time it is a bug (or a hardware
> configuration problem).

I agree that the "how long is the user prepared to wait" approach is
optimal.  But there is no way for the user to express "I want to be
fast and safe" i.e. wait just the minimum time the subsystem needs to
complete an initial scan.  Outside of building the module into the
kernel to take advantage of the built-in wait_for_device_probe() in
prepare_namespace().  That minimum time varies based on configuration.
 I've watched dracut fail raid assembly even though the driver had not
returned 'done' from ->scan_finished().  A generous timeout would fix
that, but now you've overshot what the kernel was prepared to call the
initial discovery window.

> Conversely, if you think of the usual case: the root device appears long
> before bus probing finishes, so by only waiting for root, we assist the
> fast boot process.

Yes, it sucks to do "wait world" when you just need a subset, but I'm
only saying to do the global wait in the case where the raid metadata
expects all devices to be present and we are about to degrade the
array for the first time.  So in the "all devices appear case" or the
"array already marked degraded case" we wouldn't need to wait and boot
would proceed soon as root is able to be assembled.

...but maybe that is my answer.  A generous timeout incurred only when
that first degraded event happens?  I don't know just makes me
uncomfortable that userspace has no visibility into all the machinery
that makes wait_for_device_probe() work in the built-in case.  But
maybe that is because prepare_namespace() is not free to be as
expressive as an initramfs and can only use the big hammer.

--
Dan
--
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


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux