From: Qu Wenruo <wqu@suse.com>
To: "hch@infradead.org" <hch@infradead.org>,
Matthew Wilcox <willy@infradead.org>
Cc: Johannes Thumshirn <Johannes.Thumshirn@wdc.com>,
Kanchan Joshi <joshi.k@samsung.com>,
Theodore Ts'o <tytso@mit.edu>,
"lsf-pc@lists.linux-foundation.org"
<lsf-pc@lists.linux-foundation.org>,
"linux-btrfs@vger.kernel.org" <linux-btrfs@vger.kernel.org>,
"linux-fsdevel@vger.kernel.org" <linux-fsdevel@vger.kernel.org>,
"linux-nvme@lists.infradead.org" <linux-nvme@lists.infradead.org>,
"linux-block@vger.kernel.org" <linux-block@vger.kernel.org>,
"josef@toxicpanda.com" <josef@toxicpanda.com>
Subject: Re: [LSF/MM/BPF TOPIC] File system checksum offload
Date: Mon, 3 Feb 2025 19:06:15 +1030 [thread overview]
Message-ID: <efcb712d-15f9-49ab-806d-a924a614034f@suse.com> (raw)
In-Reply-To: <Z6B-luT-CzxyDGft@infradead.org>
在 2025/2/3 19:00, hch@infradead.org 写道:
> On Mon, Feb 03, 2025 at 08:26:33AM +0000, Matthew Wilcox wrote:
>> so this is a block layer issue if it's not set.
>
> And even if the flag is set direct I/O ignores it. So while passing
> through such a flag through virtio might be useful we need to eventually
> sort out the fact that direct I/O doesn't respect it.
The example I mentioned is just an easy-to-reproduce example, there are
even worse cases, like multi-thread workload where one is doing direct
IO, the other one is modifying the buffer.
So passing AS_STABLE_WRITES is only a solution for the specific case I
mentioned, not a generic solution at all.
But I would still appreciate any movement to expose that flag to virtio-blk.
>
> Locking up any thread touching memory under direct I/O might be quite
> heavy handed, so this means bounce buffering on page fault. We had
> plenty of discussion of this before, but I don't think anyone actually
> looked into implementing it.
>
Thus my current plan to fix it is to make btrfs to skip csum for direct IO.
This will make btrfs to align with EXT4/XFS behavior, without the
complex AS_STABLE_FLAGS passing (and there is no way for user space to
probe that flag IIRC).
But that will break the current per-inode level NODATASUM setting, and
will cause some incompatibility (a new incompat flag needed, extra
handling if no data csum found, extra fsck support etc).
Thanks,
Qu
next prev parent reply other threads:[~2025-02-03 8:36 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20250130092400epcas5p1a3a9d899583e9502ed45fe500ae8a824@epcas5p1.samsung.com>
2025-01-30 9:15 ` [LSF/MM/BPF TOPIC] File system checksum offload Kanchan Joshi
2025-01-30 14:28 ` Theodore Ts'o
2025-01-30 20:39 ` [Lsf-pc] " Martin K. Petersen
2025-01-31 4:40 ` Theodore Ts'o
2025-01-31 7:07 ` Christoph Hellwig
2025-01-31 13:11 ` Kanchan Joshi
2025-02-03 7:47 ` Johannes Thumshirn
2025-02-03 7:56 ` Christoph Hellwig
2025-02-03 8:04 ` Johannes Thumshirn
2025-02-03 8:06 ` hch
2025-02-03 8:16 ` Qu Wenruo
2025-02-03 8:26 ` Matthew Wilcox
2025-02-03 8:30 ` hch
2025-02-03 8:36 ` Qu Wenruo [this message]
2025-02-03 8:40 ` hch
2025-02-03 8:51 ` Qu Wenruo
2025-02-03 8:57 ` hch
2025-02-03 8:26 ` hch
2025-02-03 13:27 ` Kanchan Joshi
2025-02-03 23:17 ` Qu Wenruo
2025-02-04 5:48 ` hch
2025-02-04 5:16 ` hch
2025-03-18 7:06 ` Kanchan Joshi
2025-03-18 8:07 ` hch
2025-03-19 18:06 ` Kanchan Joshi
2025-03-20 5:48 ` hch
2025-02-03 13:32 ` Kanchan Joshi
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=efcb712d-15f9-49ab-806d-a924a614034f@suse.com \
--to=wqu@suse.com \
--cc=Johannes.Thumshirn@wdc.com \
--cc=hch@infradead.org \
--cc=josef@toxicpanda.com \
--cc=joshi.k@samsung.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-nvme@lists.infradead.org \
--cc=lsf-pc@lists.linux-foundation.org \
--cc=tytso@mit.edu \
--cc=willy@infradead.org \
/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