ahcich timeouts, only with ahci, not with ataahci

Alexander Motin mav at FreeBSD.org
Tue Feb 23 16:19:04 UTC 2010

Harald Schmalzbauer wrote:
> Maybe it's helpful to you. Since I haven't seen the hang after
> upgrading, although doing extensive network transfer tests, I thought it
> vanished and haven't kept logs safe...

Enabling verbose kernel messages may give a bit more info.

>>> 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.
> Sounds reasonable.
> How can I disable NCQ with new ahci?

There is no user-level control for this yet. It can be done via writing
quirk for this specific device in ata_xpt.c, or via commenting setting
ADA_FLAG_CAN_NCQ flag in ata_da.c, or by adding AHCI_Q_NONCQ quirk for
your controller in ahci.c.

> I guess if it's a HDD firmware issue with NCQ the hang shouldn't happen
> when NCQ is disabled.

Just for case of real I/O timeout, run full surface test with SMART.

> Btw, I found camcontrol cmd ada0 -a "EF 85 00 00 00 00 00 00 00 00 00
> 00" for disabling APM and another one for disabling AAM. I did that for
> my drives. Is there a wiki where we can place such valuable commands?

Probably not. It is just ATA commands, taken from ATA specification, but
definitely it is not very easy way.

Alexander Motin

More information about the freebsd-stable mailing list