From: Christoph Hellwig <hch@lst.de>
To: Bart Van Assche <bvanassche@acm.org>
Cc: Christoph Hellwig <hch@lst.de>, Jens Axboe <axboe@kernel.dk>,
linux-block@vger.kernel.org, Jaegeuk Kim <jaegeuk@kernel.org>,
Damien Le Moal <damien.lemoal@opensource.wdc.com>,
Ming Lei <ming.lei@redhat.com>
Subject: Re: [PATCH v2 06/11] block: mq-deadline: Disable head insertion for zoned writes
Date: Mon, 24 Apr 2023 09:00:58 +0200 [thread overview]
Message-ID: <20230424070058.GA11830@lst.de> (raw)
In-Reply-To: <05e3962f-73c8-a721-a457-605243b64e66@acm.org>
On Thu, Apr 20, 2023 at 10:00:07AM -0700, Bart Van Assche wrote:
> 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.
Yes.
> 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.
I think we need to understand why these requeues even happen.
Unfortunately blk_mq_requeue_request has quite a few callers, so they'll
need a bit of an audit.
Quite a few are about resource constraints in the hardware and or driver.
In this case I suspect it is essential that they are prioritized over
incoming new commands in the way I suggested before.
A different case is nvme_retry_req with the CRD field set, in which
case we want to wait some time before retrying this particular command,
so having new command bypass it makes sense.
Another one is the SCSI ALUA transition delay, in which case we want
to wait before sending commands to the LU again. In this case we
really don't want to resend any commands until the delay in kicking
the requeue list.
So I'm really not sure what the right thing to is here. But I'm
pretty sure just skipping head inserts for zoned locked writes is
even more wrong than what we do right now. And I also don't see
what it would be useful for. All zoned writes should either be
locked by higher layers, or even better just use zone append and
just get a new new location assigned when requeing as discussed
before.
next prev parent reply other threads:[~2023-04-24 7:01 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-18 22:39 [PATCH v2 00/11] mq-deadline: Improve support for zoned block devices Bart Van Assche
2023-04-18 22:39 ` [PATCH v2 01/11] block: Simplify blk_req_needs_zone_write_lock() Bart Van Assche
2023-04-19 4:09 ` Christoph Hellwig
2023-04-18 22:39 ` [PATCH v2 02/11] block: Micro-optimize blk_req_needs_zone_write_lock() Bart Van Assche
2023-04-19 4:11 ` Christoph Hellwig
2023-04-19 18:30 ` Bart Van Assche
2023-04-20 5:00 ` Christoph Hellwig
2023-04-18 22:39 ` [PATCH v2 03/11] block: Introduce blk_rq_is_seq_zoned_write() Bart Van Assche
2023-04-19 4:50 ` Christoph Hellwig
2023-04-19 21:12 ` Bart Van Assche
2023-04-20 1:03 ` Damien Le Moal
2023-04-20 5:01 ` Christoph Hellwig
2023-04-18 22:39 ` [PATCH v2 04/11] block: mq-deadline: Simplify deadline_skip_seq_writes() Bart Van Assche
2023-04-19 4:52 ` Christoph Hellwig
2023-04-18 22:39 ` [PATCH v2 05/11] block: mq-deadline: Improve deadline_skip_seq_writes() Bart Van Assche
2023-04-18 22:39 ` [PATCH v2 06/11] block: mq-deadline: Disable head insertion for zoned writes Bart Van Assche
2023-04-19 4:30 ` Christoph Hellwig
2023-04-19 22:43 ` Bart Van Assche
2023-04-20 5:06 ` Christoph Hellwig
2023-04-20 17:00 ` Bart Van Assche
2023-04-24 7:00 ` Christoph Hellwig [this message]
2023-04-18 22:39 ` [PATCH v2 07/11] block: mq-deadline: Preserve write streams for all device types Bart Van Assche
2023-04-18 22:39 ` [PATCH v2 08/11] block: mq-deadline: Fix a race condition related to zoned writes Bart Van Assche
2023-04-19 5:07 ` Christoph Hellwig
2023-04-19 18:46 ` Bart Van Assche
2023-04-20 1:00 ` Damien Le Moal
2023-04-18 22:40 ` [PATCH v2 09/11] block: mq-deadline: Handle requeued requests correctly Bart Van Assche
2023-04-19 5:07 ` Christoph Hellwig
2023-04-19 23:01 ` Bart Van Assche
2023-04-20 1:07 ` Damien Le Moal
2023-04-18 22:40 ` [PATCH v2 10/11] block: Add support for the zone capacity concept Bart Van Assche
2023-04-20 9:23 ` Niklas Cassel
2023-04-20 17:12 ` Bart Van Assche
2023-04-20 22:00 ` Damien Le Moal
2023-04-20 22:51 ` Bart Van Assche
2023-04-20 23:37 ` Damien Le Moal
2023-04-20 23:44 ` Bart Van Assche
2023-04-20 23:53 ` Damien Le Moal
2023-04-21 0:29 ` Jaegeuk Kim
2023-04-21 1:52 ` Damien Le Moal
2023-04-21 20:15 ` Jaegeuk Kim
2023-04-21 22:25 ` Damien Le Moal
2023-04-24 6:01 ` Christoph Hellwig
2023-04-24 17:58 ` Jaegeuk Kim
2023-04-24 19:05 ` Jaegeuk Kim
2023-04-25 13:38 ` Damien Le Moal
2023-04-24 17:48 ` Jaegeuk Kim
2023-04-18 22:40 ` [PATCH v2 11/11] block: mq-deadline: Respect the active zone limit Bart Van Assche
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230424070058.GA11830@lst.de \
--to=hch@lst.de \
--cc=axboe@kernel.dk \
--cc=bvanassche@acm.org \
--cc=damien.lemoal@opensource.wdc.com \
--cc=jaegeuk@kernel.org \
--cc=linux-block@vger.kernel.org \
--cc=ming.lei@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).