Thread (6 messages) 6 messages, 4 authors, 2007-03-31

Re: Why is NCQ enabled by default by libata? (2.6.20)

From: Mark Rustad <hidden>
Date: 2007-03-27 22:12:10
Also in: lkml

On Mar 27, 2007, at 1:38 PM, Jeff Garzik wrote:
Mark Rustad wrote:
quoted
reorder any queued operations. Of course if you really care about  
your data, you don't really want to turn write cache on.
That's a gross exaggeration.  FLUSH CACHE and FUA both ensure data  
integrity as well.

Turning write cache off has always been a performance-killing  
action on ATA.
Perhaps. Folks I work with would disagree with that, but I am not  
enough of a storage expert to judge. My statement mirrors the  
judgement of folks I work with that know more than I do.
quoted
Also the controller used can have unfortunate interactions. For  
example the Adaptec SAS controller firmware will never issue more  
than two queued commands to a SATA drive (even though the firmware  
will happily accept more from the driver), so even if an attached  
drive is capable of reordering queued commands, its performance is  
seriously crippled by not getting more commands queued up. In  
addition, some drive firmware seems to try to bunch up queued  
command completions which interacts very badly with a controller  
that queues up so few commands. In this case turning NCQ off  
performs better because the drive knows it can't hold off  
completions to reduce interrupt load on the host – a good idea  
gone totally wrong when used with the Adaptec controller.
All of that can be fixed with an Adaptec firmware upgrade, so not  
our problem here, and not a reason to disable NCQ in libata core.
It theoretically could be, but we are using the latest Adaptec  
firmware. Until there exists firmware that fixes it, it remains an  
issue. We worked with Adaptec to isolate this issue, but no  
resolution has been forthcoming from them. I agree that this does not  
mean that NCQ should be disabled in libata core, but some combination  
of controller/drive/firmware blacklist may need to be managed, as  
distasteful as that is.
quoted
Today SATA NCQ seems to be an area where few combinations work  
well. It seems so bad to me that a whitelist might be better than  
a blacklist. That is probably overstating it, but NCQ performance  
is certainly a big problem.
Real world testing disagrees with you.  NCQ has been enabled for a  
while now.  We would have screaming hordes of users if the majority  
of configurations were problematic.
I didn't say that it is a majority or that it doesn't work, it just  
often doesn't perform. If it didn't work there would be lots of  
howling for sure. I'm also not saying that it is a libata problem. It  
seems mostly to be controller and drive firmware issues - and the odd  
fan issue (if you saw the thread: [BUG 2.6.21-rc3-git9] SATA NCQ  
failure with Samsum HD401LJ).

I guess I am mainly lamenting the current state of SATA/NCQ devices  
and sharing what little I have picked up about it - which is that I  
want SAS disks in my next system!

-- 
Mark Rustad, MRustad@gmail.com

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help