Hi Bart! > If zoned writes (REQ_OP_WRITE) for a sequential write required zone > have a starting LBA that differs from the write pointer, e.g. because > zoned writes have been reordered, then the storage device will respond > with an UNALIGNED WRITE COMMAND error. Send commands that failed with > an unaligned write error to the SCSI error handler if zone write > locking is disabled. Let the SCSI error handler sort SCSI commands per > LBA before resubmitting these. > > If zone write locking is disabled, increase the number of retries for > write commands sent to a sequential zone to the maximum number of > outstanding commands because in the worst case the number of times > reordered zoned writes have to be retried is (number of outstanding > writes per sequential zone) - 1. I am afraid that I find falling back to rely on the error handler pretty kludgy. It seems like there would be a more straightforward way ensure that request ordering is preserved for devices that are known not to reorder internally. I probably missed the finer details of what was discussed while I was away. But why can't we address the specific corner cases that cause the unexpected reordering at the block layer? Sorting requests in the SCSI error handler after a reported failure just seems like papering over the fact that there's a problem elsewhere. -- Martin K. Petersen Oracle Linux Engineering