ahcich timeouts, only with ahci, not with ataahci

Alexander Motin mav at FreeBSD.org
Tue Feb 23 15:10:19 UTC 2010


Harald Schmalzbauer wrote:
> I'm frequently getting my machine locked with ahcichX timeouts:
> ahcich2: Timeout on slot 0
> ahcich2: is 00000000 cs 00000001 ss 00000000 rs 00000001 tfd c0 serr
> 00000000
> ahcich2: Timeout on slot 8
> ahcich2: is 00000000 cs 00000100 ss 00000000 rs 00000100 tfd c0 serr
> 00000000
> ahcich2: Timeout on slot 8
> ahcich2: is 00000000 cs fffff07f ss ffffff7f rs ffffff7f tfd c0 serr
> 00000000
> ...

Looking that is (Interrupt status) is zero and `rs == cs | ss` (running
command bitmasks in driver and hardware), controller doesn't report
command completion. Looking on TFD status 0xc0 with BUSY bit set, I
would suppose that either disk stuck in command processing for some
reason, or controller missed command completion status.

Have you noticed 30 second (default ATA timeout) pause before timeout
message printed? Just want to be sure that driver waited enough before
give up.

> This happens when backup over GbE overloads ZFS/HDD capabilities.
> I reduced vfs.zfs.txg.timeout to 1 to prevent the machine from locking
> up almost immediately, but from it still happens.
> When I don't use ahci but ataahci (the old driver if I understand things
> correct) I also see the ZFS burst write congestion, but this doesn't
> lead to controller timeouts, thus blocking the machine.
> 
> Sometimes the machine recovers from the disk lock, but most often I have
> to reboot.

How it looks when it doesn't? Can you send me full log messages?

> Kernel is from Feb. 19, so recent ahci improovements are active.
> Controller is ICH9R with 3 Samsung F3 SpinPoints.
> 
> Any ideas how to work arround the hangs other than using the old ahci
> driver?

Old ataahci driver wasn't using NCQ. NCQ may trigger some bugs in drive
firmware or expose some protocol inconsistencies. I would recommend you
to search for some errata for your drive and possibly firmware update.

-- 
Alexander Motin


More information about the freebsd-stable mailing list