Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 18 Nov 2009 17:59:15 +0100
From:      Ivan Voras <ivoras@freebsd.org>
To:        freebsd-current@freebsd.org
Subject:   Re: How do I use NCQ of Intel X25-E(SSD) on ahci(4)?
Message-ID:  <he1954$5c6$1@ger.gmane.org>
In-Reply-To: <4B042304.8060807@FreeBSD.org>
References:  <20091119004651.7432a6e4.nork@FreeBSD.org> <4B042304.8060807@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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(), ...)

?




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?he1954$5c6$1>