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