Re: [PATCH v2 06/11] block: mq-deadline: Disable head insertion for zoned writes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 4/19/23 22:06, Christoph Hellwig wrote:
The problem is that we now run into different handling depending
on which kind of write is coming in.  So we need to find a policy
that works for everyone.  Remember that as of the current for-6.4/block
branch the only at_head inservations remaining are:

  - blk_execute* for passthrough requests that never enter the I/O
    scheduler
  - REQ_OP_FLUSH that never enter the I/O scheduler
  - requeues using blk_mq_requeue_request
  - processing of the actual writes in the flush state machine

with the last one going away in my RFC series.

So if we come to the conclusion that requeues from the driver do not
actually need at_head insertations to avoid starvation or similar
we should just remove at_head insertations from the I/O scheduler.
If we can't do that, we need to handle them for zoned writes as well.

Hi Christoph,

I'm fine with not inserting requeued requests at the head of the queue. Inserting requeued requests at the head of the queue only preserves the original submission order if a single request is requeued. If multiple requests are requeued inserting at the head of the queue will cause inversion of the order of the requeued requests.

This implies that the I/O scheduler or disk controller (if no I/O scheduler is configured) will become responsible for optimizing the request order if requeuing happens.

Bart.



[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux