Re: [f2fs-dev] fsverity cleanups, speedup and memory usage optimization v2

David Sterba
2026-01-22T15:42:33Z

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@suse.com>