Western Digital hard disks and ATA timeouts

Søren Schmidt sos at FreeBSD.ORG
Fri Nov 7 13:16:28 PST 2008


On 7Nov, 2008, at 20:12 , Peter Wemm wrote:

> On Thu, Nov 6, 2008 at 11:17 PM, Jeremy Chadwick  
> <koitsu at freebsd.org> wrote:
> [..]
>> As stated, FreeBSD's ATA command timeout is hard-set to 5 seconds,  
>> and
>> is not adjustable without editing the ATA code yourself and  
>> increasing
>> the value.  The FreeNAS folks have made patches available to turn the
>> timeout value into a sysctl.
>>
>> Soren and/or others, please increase this timeout value.  Five  
>> seconds
>> has now been deemed too aggressive a default.  And please consider
>> migrating the timeout value into a sysctl.
>
> The 5 second timeout has been a problem for quite a while actually.
> I've had a number of instances where I've had to increase it to 20 or
> 30 seconds when recovering from marginal drives.  The longest
> "successful" recovery attempt I've seen was 26 seconds, I believe on a
> Maxtor drive a few years ago.   ("successful" == the drive spent 26
> seconds but eventually successfully read the sector).  Even the IBM
> death star drives could take much longer than 5 seconds to do a
> recovery 5 years ago.  5 seconds has never been a good default.
>
> I think the timeout should be increased to at least 30 seconds.  My
> windows box has a timeout that goes for several minutes.
>
> If there is concern about FreeBSD appearing to hang, I could imagine
> that a console warning message could be printed after 5 seconds.  But
> just say "drive has not yet responded".  But give it more time.
>
> In this day and age we're generally not playing games with udma33 vs
> 66, notched cables, poor CRC support etc.  SATA seems to have
> eliminated all that.  Hmm, it might make sense to increase the timeout
> on SATA connections to 2 or 3 minutes by default.

Actually I do have a patch around that logs the timeout on the console  
after the normal timeout (5secs), then just goes on to wait for double  
the timeout and log again etc etc, final timeout was IIRC 60 secs but  
could be anything.

-Søren


More information about the freebsd-stable mailing list