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>