Any objections/comments on axing out old ATA stack?

Jeremy Chadwick jdc at
Sun Apr 21 11:32:22 UTC 2013

On Sun, Apr 21, 2013 at 02:11:04PM +0300, Alexander Motin wrote:
> On 21.04.2013 00:29, Jeremy Chadwick wrote:
> >- The ATA commands which lead up to the error also vary.  Many are for
> >   write requests, and from some entries I can see that the OS was doing
> >   NCQ writes (WRITE FPDMA QUEUED) and then suddenly decided to do a
> >   classic 28-bit LBA write (WRITE DMA).  I'm not sure why an OS would do
> >   this (there's nothing optimal about it) unless there were conditions
> >   occurring where the OS/ATA driver said "this NCQ write isn't working
> >   (timeout, etc.), let me retry with a classic 28-bit LBA write".
> ATA disk driver in CAM inserts non-queued command every several
> seconds of continuous load to limit possible command starvation
> inside the disk. SCSI driver does alike things, but inserts ordered
> command flag, that does not exist in SATA, instead of different
> command.

Thanks for the insights Alexander, greatly appreciated.

I'm a little confused by your description, because if I'm reading it
right, it sounds like it conflicts with what the ACS-2 spec states.
Quoting T13/2015-D rev 3 (I'm aware it's a working draft), section

"If the device receives a command that is not an NCQ command while NCQ
commands are in the queue, then the device shall return command aborted
for the new command and for all of the NCQ commands that are in the

I assume this means ABRT status is returned to the host controller; if
so (and by design of course), how do we differentiate between that
condition and any other I/O condition that induces ABRT?

Possibly in the answer is in this admission: I should probably get
around to reading ATA8-AST sometime.  :-)

| Jeremy Chadwick                                   jdc at |
| UNIX Systems Administrator       |
| Mountain View, CA, US                                            |
| Making life hard for others since 1977.             PGP 4BD6C0CB |

More information about the freebsd-stable mailing list