I agree with Eddie. The granularity of the timeout
specification should be at command level. The upper
level of device driver should know exactly the device
type.
regards,
Stanley
--- Eddie Williams <[EMAIL PROTECTED]>
wrote:
> > Hi All,
> >
> > Doug Ledford wrote:
> > >
> > > "Boerner, Brian" wrote:
>
> > > If you're going to do the work, then make the
> timeout on a per controller
> > > basis (I suppose it should actually be on a per
> device basis when I think
> <stuff deleted>
> >
> > Yes, timeouts should be on a per device basis.
> >
> > Regarding "timeout values back down to about 8
> seconds"...
> >
> > I think you'll find some devices after exhausting
> it's retries w/ECC,
> > and perhaps performing Automatic Read/Write
> Allocation for bad blocks, your 8
> > second timeout will be exceeded, leading to false
> errors. Of course tapes
> > and medium changers require much longer command
> timeouts. Timeouts should
> > be controlled by the device driver generating the
> request (IMHO).
> >
> > Also, I think you need to honor the device
> timeout setup, since your
> > driver does not know if an external RAID box is
> attached.
> >
> > You may also find there are other commands, such
> as Test Unit Ready,
> > which require longer timeouts for RAID boxes which
> do transparent controller
> > failover. Replacing all hardcoded timeouts with
> variables would be great!
> >
> > Kind Regards,
> > Robin
>
> Since we are talking about improving the granularity
> of the timer why not take
> the timeout level to the command level per device.
> The seek on a tape can
> take a lot longer than a seek on a disk. A write
> filemarks on a tape can take
> a lot longer than a "regular" write. There could be
> a default set of timers
> per command per device (disk, tape, ...) and a
> mechanism (maybe ioctl and/or
> compile time) that would allow specific timeout
> values for a specific device.
> We should be able to come up with reasonable values
> that the default works for
> a majority of devices.
>
> It is unfortunate that for convenience RAID boxes
> return direct-access. If
> they returned Storage array controller device (and
> the OS's could handle that)
> then we could have reasonable default values for
> them as well instead of
> having to make them work in the timeout values of a
> regular hard disk or most
> likely the case making the default timeout values
> for a disk gross because
> RAID boxes can take so long.
>
> I think the implementation could be something like
> instead of making this a
> variable per device make it a pointer. If the
> pointer is null then let the
> various drivers use their default value. If the
> pointer is not null then
> index by the command to get the timer. The device
> specific drivers (sd, sg,
> ....) could set the pointer when they detect a
> device and one could even have
> an ioctl that would replace the timeout array with a
> device specific one with
> either really tight values for quick error recovery
> or more likely really
> gross numbers to handle those end cases where a RAID
> can go on its coffee
> break. :-)
>
> Eddie Williams
>
>
>
> -
> To unsubscribe from this list: send the line
> "unsubscribe linux-scsi" in
> the body of a message to [EMAIL PROTECTED]
__________________________________________________
Do You Yahoo!?
Get Yahoo! Mail - Free email you can access from anywhere!
http://mail.yahoo.com/
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]