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