From: Damien Le Moal <dlemoal@kernel.org>
To: Bart Van Assche <bvanassche@acm.org>,
Christoph Hellwig <hch@infradead.org>
Cc: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>,
linux-block@vger.kernel.org
Subject: Re: [blktests] zbd/012: Test requeuing of zoned writes and queue freezing
Date: Thu, 28 Nov 2024 08:11:20 +0900 [thread overview]
Message-ID: <17c745d9-bdf6-4bc4-b767-e47a663fbe5b@kernel.org> (raw)
In-Reply-To: <31d02cd4-ba0e-4294-9ff1-a114fa266f15@acm.org>
On 11/28/24 02:10, Bart Van Assche wrote:
> On 11/26/24 10:21 PM, Christoph Hellwig wrote:
>> On Tue, Nov 26, 2024 at 10:16:18PM -0800, Christoph Hellwig wrote:
>>> Did you trace where the bio_wouldblock_error is coming from? Probably
>>> a failing request allocation? Can we call the guts of blk_zone_plug_bio
>>> after allocating the request to avoid this?
>>
>> The easier option might be to simply to "unprepare" the bio
>> (i.e. undo the append op rewrite and sector adjustment), decrement
>> wp_offset and retun. Given that no one else could issue I/O
>> while we were trying to allocate the bio this should work just fine.
>
> Yet another possibility is to move the code that updates
> zwplug->wp_offset from blk_zone_plug_bio() into
> blk_zone_write_plug_init_request(). With this change the
> zwplug->wp_offset update won't have to be undone in any case since it
> happens after the all code in blk_mq_submit_bio() that can potentially
> fail.
We could for mq devices, but given that blk_zone_write_plug_init_request() is
not used for BIO devices (dm), we would still need to update the wp early. And
DM may have different failure patterns for REQ_NOWAIT BIOs, so it seems simpler
and more solid to punt the BIO to the BIO work and ignore the REQ_NOWAIT flag there.
--
Damien Le Moal
Western Digital Research
next prev parent reply other threads:[~2024-11-27 23:11 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-25 21:10 [blktests] zbd/012: Test requeuing of zoned writes and queue freezing Bart Van Assche
2024-11-26 8:34 ` Damien Le Moal
2024-11-26 13:44 ` Bart Van Assche
2024-11-27 5:18 ` Damien Le Moal
2024-11-27 6:16 ` Christoph Hellwig
2024-11-27 6:21 ` Christoph Hellwig
2024-11-27 6:32 ` Damien Le Moal
2024-11-27 6:33 ` Christoph Hellwig
2024-11-27 6:43 ` Damien Le Moal
2024-11-27 6:45 ` Christoph Hellwig
2024-11-27 7:02 ` Damien Le Moal
2024-11-27 7:19 ` Christoph Hellwig
2024-11-27 8:17 ` Damien Le Moal
2024-11-27 8:58 ` Christoph Hellwig
2024-11-27 11:31 ` Damien Le Moal
2024-11-27 16:58 ` Christoph Hellwig
2024-11-27 23:18 ` Damien Le Moal
2024-11-27 23:36 ` Bart Van Assche
2024-11-27 23:43 ` Damien Le Moal
2024-11-28 3:20 ` Christoph Hellwig
2024-11-28 4:37 ` Damien Le Moal
2024-11-28 4:39 ` Christoph Hellwig
2024-11-28 4:52 ` Damien Le Moal
2024-11-28 5:00 ` Christoph Hellwig
2024-11-28 5:07 ` Damien Le Moal
2024-11-28 5:16 ` Christoph Hellwig
2024-11-28 5:19 ` Damien Le Moal
2024-11-28 5:21 ` Christoph Hellwig
2024-11-28 5:27 ` Damien Le Moal
2024-11-27 17:10 ` Bart Van Assche
2024-11-27 23:11 ` Damien Le Moal [this message]
2024-11-26 11:26 ` Damien Le Moal
2024-11-26 12:49 ` Christoph Hellwig
2024-11-27 2:28 ` Damien Le Moal
2024-11-28 4:35 ` Shinichiro Kawasaki
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=17c745d9-bdf6-4bc4-b767-e47a663fbe5b@kernel.org \
--to=dlemoal@kernel.org \
--cc=bvanassche@acm.org \
--cc=hch@infradead.org \
--cc=linux-block@vger.kernel.org \
--cc=shinichiro.kawasaki@wdc.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.