On 8/24/23 16:53, Damien Le Moal wrote:
I think that Hannes point was that if you ensure that the rejected regular write commands used to emulate zone append when requeued go through the sd driver again when resubmitted, they will be changed again to emulate the original zone append using the latest wp location, which is assumed correct. And that does not depend on the ordering. So requeuing these regular writes does not need sorting. It can be in any order. The constraint is of course that they must be re-preped from the original REQ_OP_ZONE_APPEND every time they are requeued.
Hi Damien, Although this is a possible approach, I do not agree that this is a better approach. Compared to the patch series that I posted, the disadvantages of this approach are as follows: * It relies on the zone append emulation. Although that emulation is not too complicated, it adds more code in the hot path. The spin lock in the zone append emulation is expected to cause performance issues at the performance levels supported by UFS devices. Current UFS devices already support more than 300 K IOPS and future UFS devices are expected to support even higher performance. * It would be challenging to derive the write pointer in the error handler without submitting a REPORT ZONES command to the storage device. This means that the error handler becomes more complicated. In summary: the feedback is appreciated but I do not agree that the zone append approach is a better approach for UFS devices than the approach of this patch series. Thanks, Bart.