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

Phillip Susi
2007-03-29T17:28:31Z

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.