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 4.16.1: "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 queue." 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_koitsu.org | | UNIX Systems Administrator http://jdc.koitsu.org/ | | Mountain View, CA, US | | Making life hard for others since 1977. PGP 4BD6C0CB |Received on Sun Apr 21 2013 - 09:32:22 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:36 UTC