From: Demi Marie Obenour <demiobenour@gmail.com>
To: Gao Xiang <hsiangkao@linux.alibaba.com>,
"Darrick J. Wong" <djwong@kernel.org>
Cc: bernd@bsbernd.com, joannelkoong@gmail.com,
linux-ext4@vger.kernel.org, linux-fsdevel@vger.kernel.org,
miklos@szeredi.hu, neal@gompa.dev,
linux-bcachefs@vger.kernel.org, linux-btrfs@vger.kernel.org,
zfs-devel@list.zfsonlinux.org
Subject: Re: [PATCHSET v6 4/8] fuse: allow servers to use iomap for better file IO performance
Date: Wed, 19 Nov 2025 20:10:19 -0500 [thread overview]
Message-ID: <aaf98238-e8f6-472d-bfb9-7f8ddbab8e02@gmail.com> (raw)
In-Reply-To: <af9a8030-cd19-457c-8c15-cb63e8140dfc@linux.alibaba.com>
[-- Attachment #1.1.1: Type: text/plain, Size: 2644 bytes --]
On 11/19/25 16:00, Gao Xiang wrote:
>
>
> On 2025/11/20 02:04, Darrick J. Wong wrote:
>> On Wed, Nov 19, 2025 at 04:19:36AM -0500, Demi Marie Obenour wrote:
>>>> By keeping the I/O path mostly within the kernel, we can dramatically
>>>> increase the speed of disk-based filesystems.
>>>
>>> ZFS, BTRFS, and bcachefs all support compression, checksumming,
>>> and RAID. ZFS and bcachefs also support encryption, and f2fs and
>>> ext4 support fscrypt.
>>>
>>> Will this patchset be able to improve FUSE implementations of these
>>> filesystems? I'd rather not be in the situation where one can have
>>> a FUSE filesystem that is fast, but only if it doesn't support modern
>>> data integrity or security features.
>>
>> Not on its own, no.
>>
>>> I'm not a filesystem developer, but here are some ideas (that you
>>> can take or leave):
>>>
>>> 1. Keep the compression, checksumming, and/or encryption in-kernel,
>>> and have userspace tell the kernel what algorithm and/or encryption
>>> key to use. These algorithms are generally well-known and secure
>>> against malicious input. It might be necessary to make an extra
>>> data copy, but ideally that copy could just stay within the
>>> CPU caches.
>>
>> I think this is easily doable for fscrypt and compression since (IIRC)
>> the kernel filesystems already know how to transform data for I/O, and
>> nowadays iomap allows hooking of bios before submission and/or after
>> endio. Obviously you'd have to store encryption keys in the kernel
>> somewhere.
>
> I think it depends, since (this way) it tries to reuse some of the
> existing kernel filesystem implementations (and assuming the code is
> safe), so at least it still needs to load a dedicated kernel module
> for such usage at least.
My hope is that these modules could be generic library code.
Compression, checksumming, and encryption algorithms aren't specific
to any particular filesystem, and the kernel might well be using them
already for other purposes.
Of course, it's still the host admin's job to make sure the relevant
modules are loaded, unless they are autoloaded.
> I think it's not an issue for userspace ext4 of course (because ext4
> and fscrypt is almost builtin for all kernels), but for out-of-tree
> fses even pure userspace fses, I'm not sure it's doable to load the
> module in a container context.
>
> Maybe eBPF is useful for this area, but it's still not quite
> flexible compared to native kernel filesystems.
>
> Thanks,
> Gao Xiang
Thank you for the feedback!
--
Sincerely,
Demi Marie Obenour (she/her/hers)
[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 7253 bytes --]
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2025-11-20 1:10 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <176169810144.1424854.11439355400009006946.stgit@frogsfrogsfrogs>
2025-11-19 9:19 ` [PATCHSET v6 4/8] fuse: allow servers to use iomap for better file IO performance Demi Marie Obenour
2025-11-19 9:41 ` Gao Xiang
2025-11-19 18:04 ` Darrick J. Wong
2025-11-19 21:00 ` Gao Xiang
2025-11-19 21:51 ` Gao Xiang
2025-11-20 1:13 ` Demi Marie Obenour
2025-11-20 1:10 ` Demi Marie Obenour [this message]
2025-11-20 1:49 ` Gao Xiang
2025-11-20 1:05 ` Demi Marie Obenour
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=aaf98238-e8f6-472d-bfb9-7f8ddbab8e02@gmail.com \
--to=demiobenour@gmail.com \
--cc=bernd@bsbernd.com \
--cc=djwong@kernel.org \
--cc=hsiangkao@linux.alibaba.com \
--cc=joannelkoong@gmail.com \
--cc=linux-bcachefs@vger.kernel.org \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=miklos@szeredi.hu \
--cc=neal@gompa.dev \
--cc=zfs-devel@list.zfsonlinux.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