Western Digital hard disks and ATA timeouts

Peter Wemm peter at wemm.org
Fri Nov 7 11:12:57 PST 2008


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.
-- 
Peter Wemm - peter at wemm.org; peter at FreeBSD.org; peter at yahoo-inc.com; KI6FJV
"All of this is for nothing if we don't go to the stars" - JMS/B5
"If Java had true garbage collection, most programs would delete
themselves upon execution." -- Robert Sewell


More information about the freebsd-stable mailing list