[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20260122154215.GV26902@suse.cz>
Date: Thu, 22 Jan 2026 16:42:15 +0100
From: David Sterba <dsterba@...e.cz>
To: Christoph Hellwig <hch@....de>
Cc: Eric Biggers <ebiggers@...nel.org>, Al Viro <viro@...iv.linux.org.uk>,
Christian Brauner <brauner@...nel.org>, Jan Kara <jack@...e.cz>,
David Sterba <dsterba@...e.com>, Theodore Ts'o <tytso@....edu>,
Jaegeuk Kim <jaegeuk@...nel.org>, Chao Yu <chao@...nel.org>,
Andrey Albershteyn <aalbersh@...hat.com>,
"Matthew Wilcox (Oracle)" <willy@...radead.org>,
linux-fsdevel@...r.kernel.org, linux-btrfs@...r.kernel.org,
linux-ext4@...r.kernel.org, linux-f2fs-devel@...ts.sourceforge.net,
fsverity@...ts.linux.dev
Subject: Re: fsverity cleanups, speedup and memory usage optimization v2
On Thu, Jan 22, 2026 at 09:21:56AM +0100, Christoph Hellwig wrote:
> Hi all,
>
> this series has a hodge podge of fsverity enhances that I looked into as
> part of the review of the xfs fsverity support series.
>
> The first part calls fsverity code from VFS code instead of requiring
> boilerplate in the file systems. The first patch fixes a bug in btrfs
> as part of that, as btrfs was missing a check. An xfstests
> test case for this was submitted already.
>
> The middle part optimizes the fsverity read path by kicking off readahead
> for the fsverity hashes from the data read submission context, which in my
> simply testing showed huge benefits for sequential reads using dd.
> I haven't been able to get fio to run on a preallocated fio file, but
> I expect random read benefits would be significantly better than that
> still.
>
> The last part avoids the need for a pointer in every inode for fsverity
> and instead uses a rhashtable lookup, which is once per read_folio or
> ->readahead invocation and for for btrfs another time for each bio
> completion. Right now this does not increse the number of inodes in
> each slab, but for ext4 we are getting very close to that (within
> 16 bytes by my count).
>
> Changes since v1:
> - reorder to keep the most controversial part last
> - drop moving the open handling to common code (for now)
> - factor the page cache read code into common code
> - reduce the number of hash lookups
> - add a barrier in the fsverity_active that pairs with the cmpxchg
> that sets the inode flag.
>
> Diffstat:
> fs/attr.c | 12 ++
For the btrfs changes
> fs/btrfs/btrfs_inode.h | 4
> fs/btrfs/extent_io.c | 37 +++++---
> fs/btrfs/inode.c | 13 ---
> fs/btrfs/verity.c | 11 --
Acked-by: David Sterba <dsterba@...e.com>
Powered by blists - more mailing lists