On 4/18/23 21:30, Christoph Hellwig wrote:
On Tue, Apr 18, 2023 at 03:39:57PM -0700, Bart Van Assche wrote:
Make sure that zoned writes (REQ_OP_WRITE and REQ_OP_WRITE_ZEROES) are
submitted in LBA order. This patch does not affect REQ_OP_WRITE_APPEND
requests.
As said before this is not correct. What we need to instead is to
support proper patch insertation when the at_head flag is set so
that the requests get inserted before the existing requests, but
in ordered they are passed to the I/O scheduler.
It is not clear to me how this approach should work if the AT_HEAD flag
is set for some zoned writes but not for other zoned writes for the same
zone? The mq-deadline scheduler uses separate lists for at-head and for
other requests. Having to check both lists before dispatching a request
would significantly complicate the mq-deadline scheduler.
This also needs to be done for the other two I/O schedulers.
As far as I know neither Kyber nor BFQ support zoned storage so we don't
need to worry about how these schedulers handle zoned writes?
Thanks,
Bart.