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

Jeff Garzik
2007-03-29T18:51:53Z

Phillip Susi wrote:
> Jeff Garzik wrote:
>> NCQ provides for a more asynchronous flow. It helps greatly with
>> reads (of which most are, by nature, synchronous at the app level)
>> from multiple threads or apps. It helps with writes, even with write
>> cache on, by allowing multiple commands to be submitted and/or retired
>> at the same time.
>
> But when writing, what is the difference between queuing multiple tagged
> writes, and sending down multiple untagged cached writes that complete
> immediately and actually hit the disk later? Either way the host keeps
> sending writes to the disk until it's buffers are full, and the disk is
> constantly trying to commit those buffers to the media in the most
> optimal order.

Less overhead to starting commands, and all the other benefits of making
operations fully async.

Jeff