On Tue, May 23, 2023 at 10:19:34AM -0700, Bart Van Assche wrote: > On 5/23/23 02:03, Ming Lei wrote: > > On Mon, May 22, 2023 at 11:38:37AM -0700, Bart Van Assche wrote: > > > Send requeued requests to the I/O scheduler such that the I/O scheduler > > > can control the order in which requests are dispatched. > > > > I guess you are addressing UFS zoned for REQ_OP_WRITE: > > > > https://lore.kernel.org/linux-block/8e88b22e-fdf2-5182-02fe-9876e8148947@xxxxxxx/ > > > > I am wondering how this way can maintain order for zoned write request. > > > > requeued WRITE may happen in any order, for example, req A and req B is > > in order, now req B is requeued first, then follows req A. > > > > So req B is requeued to scheduler first, and issued to LLD, then > > request A is requeued and issued to LLD later, then still re-order? > > > > Or sd_zbc can provide requeue order guarantee? > > Hi Ming, > > The mq-deadline scheduler restricts the queue depth to one per zone for zoned > storage so at any time there is at most one write command (REQ_OP_WRITE) in > flight per zone. But if the write queue depth is 1 per zone, the requeued request won't be re-ordered at all given no other write request can be issued from scheduler in this zone before this requeued request is completed. So why bother to requeue the BLK_STS_RESOURCE request via scheduler? Thanks, Ming