How do I use NCQ of Intel X25-E(SSD) on ahci(4)?

Ivan Voras ivoras at freebsd.org
Wed Nov 18 16:59:30 UTC 2009


Alexander Motin wrote:
> Hi.
> 
> Norikatsu Shigemura wrote:
>> 	I have a Intel 64GB SSD(X25-E) and a Western Digital Caviar Green
>> 	1TB HDD (WD10EADS), and use them on ahci(4).  ahci(4) can use NCQ
>> 	of WD10EADS, but doesn't use NCQ of X25-E.
>>
>> # camcontrol identify ada0
>> pass0: <SSDSA2SH064G1GC INTEL 045C8790> ATA/ATAPI-7 SATA 2.x device
>> pass0: 300.000MB/s transfers 
>>
>> Native Command Queuing (NCQ)   yes              30/0x1E
> 
> Here is the reason                                ^^^
> 
> This drive support less tags (31) then your AHCI controller does (32).
> Support for such case is not implemented yet. As temporary solution you
> may limit controller to use only 31 tag, then NCQ will be used. All you
> need is to go to ahci.c and change line
> ch->numslots = ...;
> to
> ch->numslots = min(31, ...);

I know next to nothing about AHCI and drivers so this might be obviously 
wrong but wouldn't a quick (i.e. MFC-able) obvious temporary fix be to say

numslots = min(get_minimum_tags_of_all_drives(), ...)

?



More information about the freebsd-current mailing list