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]

Reply via email to