From: Eric Wheeler <linux-block@lists.ewheeler.net>
To: Christoph Hellwig <hch@infradead.org>
Cc: Ming Lei <ming.lei@redhat.com>,
linux-block@vger.kernel.org, linux-ext4@vger.kernel.org
Subject: Re: loop: it looks like REQ_OP_FLUSH could return before IO completion.
Date: Sat, 16 Apr 2022 13:05:23 -0700 (PDT) [thread overview]
Message-ID: <2815ce9-85f-7b56-be3f-7835eb9bb2c6@ewheeler.net> (raw)
In-Reply-To: <YlpRrLmwe/TJucjz@infradead.org>
On Fri, 15 Apr 2022, Christoph Hellwig wrote:
> On Fri, Apr 15, 2022 at 10:29:34PM +0800, Ming Lei wrote:
> > If ext4 expects the following order, it is ext4's responsibility to
> > maintain the order, and block layer may re-order all these IOs at will,
> > so do not expect IOs are issued to device in submission order
>
> Yes, and it has been so since REQ_FLUSH (which later became
> REQ_OP_FLUSH) replaced REQ_BARRIER 12 years ago:
>
> commit 28e7d1845216538303bb95d679d8fd4de50e2f1a
> Author: Tejun Heo <tj@kernel.org>
> Date: Fri Sep 3 11:56:16 2010 +0200
>
> block: drop barrier ordering by queue draining
>
> Filesystems will take all the responsibilities for ordering requests
> around commit writes and will only indicate how the commit writes
> themselves should be handled by block layers. This patch drops
> barrier ordering by queue draining from block layer.
Thanks Christoph. I think this answers my original question, too.
You may have already answered this implicitly above. If you would be so
kind as to confirm my or correct my understanding with a few more
questions:
1. Is the only way for a filesystem to know if one IO completed before a
second IO to track the first IO's completion and submit the second IO
when the first IO's completes (eg a journal commit followed by the
subsequent metadata update)? If not, then what block-layer mechanism
should be used?
2. Are there any IO ordering flags or mechanisms in the block layer at
this point---or---is it simply that all IOs entering the block layer
can always be re-ordered before reaching the media?
Thanks!
--
Eric Wheeler
next prev parent reply other threads:[~2022-04-16 20:05 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-19 17:14 loop: it looks like REQ_OP_FLUSH could return before IO completion Eric Wheeler
2022-03-21 0:21 ` Ming Lei
2022-03-23 6:14 ` Eric Wheeler
2022-04-13 22:49 ` Eric Wheeler
2022-04-14 0:15 ` Ming Lei
2022-04-14 0:28 ` Ming Lei
2022-04-15 2:10 ` Eric Wheeler
2022-04-15 14:29 ` Ming Lei
2022-04-16 5:18 ` Christoph Hellwig
2022-04-16 20:05 ` Eric Wheeler [this message]
2022-04-17 0:59 ` Jens Axboe
2022-04-17 16:32 ` Eric Wheeler
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=2815ce9-85f-7b56-be3f-7835eb9bb2c6@ewheeler.net \
--to=linux-block@lists.ewheeler.net \
--cc=hch@infradead.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-ext4@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 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.