On 11/20/24 7:20 PM, Damien Le Moal wrote:
I am only trying to see if there is not a simpler approach than what you did. The less changes, the better, right ?
Hi Damien, I agree with you that we should select the simplest approach that yields the desired performance. Regarding the proposed approach, forcing unplugging a zone write plug from the driver once a command is passed to the driver and the driver did not reject it, is this approach compatible with SCSI devices that may report a unit attention? If two zoned writes for the same zone are submitted in order to a SCSI device and the SCSI device responds with a unit attention condition to the first write then the second write will fail with an "unaligned write" error. This will have to be handled by pausing zoned write submission and by resubmitting zoned writes after all pending zoned writes for the given zone have completed. In other words, if higher queue depths are supported per zone, we cannot avoid increasing the complexity of the code in block/blk-zoned.c. If we cannot avoid increasing the complexity of that code, I think we can as well select the approach that yields the highest performance and the fewest changes in the block layer code for regular reads and writes. Thanks, Bart.