All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Sterba <dsterba@suse.cz>
To: Christoph Hellwig <hch@lst.de>
Cc: Eric Biggers <ebiggers@kernel.org>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Christian Brauner <brauner@kernel.org>, Jan Kara <jack@suse.cz>,
	David Sterba <dsterba@suse.com>, Theodore Ts'o <tytso@mit.edu>,
	Jaegeuk Kim <jaegeuk@kernel.org>, Chao Yu <chao@kernel.org>,
	Andrey Albershteyn <aalbersh@redhat.com>,
	"Matthew Wilcox (Oracle)" <willy@infradead.org>,
	linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org,
	linux-ext4@vger.kernel.org,
	linux-f2fs-devel@lists.sourceforge.net, fsverity@lists.linux.dev
Subject: Re: fsverity cleanups, speedup and memory usage optimization v2
Date: Thu, 22 Jan 2026 16:42:15 +0100	[thread overview]
Message-ID: <20260122154215.GV26902@suse.cz> (raw)
In-Reply-To: <20260122082214.452153-1-hch@lst.de>

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>

WARNING: multiple messages have this Message-ID (diff)
From: David Sterba <dsterba@suse.cz>
To: Christoph Hellwig <hch@lst.de>
Cc: fsverity@lists.linux.dev, Christian Brauner <brauner@kernel.org>,
	Jan Kara <jack@suse.cz>, Andrey Albershteyn <aalbersh@redhat.com>,
	"Matthew Wilcox \(Oracle\)" <willy@infradead.org>,
	linux-f2fs-devel@lists.sourceforge.net,
	Eric Biggers <ebiggers@kernel.org>,
	linux-fsdevel@vger.kernel.org, Al Viro <viro@zeniv.linux.org.uk>,
	Jaegeuk Kim <jaegeuk@kernel.org>, David Sterba <dsterba@suse.com>,
	Theodore Ts'o <tytso@mit.edu>,
	linux-ext4@vger.kernel.org, linux-btrfs@vger.kernel.org
Subject: Re: [f2fs-dev] fsverity cleanups, speedup and memory usage optimization v2
Date: Thu, 22 Jan 2026 16:42:15 +0100	[thread overview]
Message-ID: <20260122154215.GV26902@suse.cz> (raw)
In-Reply-To: <20260122082214.452153-1-hch@lst.de>

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>


_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

  parent reply	other threads:[~2026-01-22 15:42 UTC|newest]

Thread overview: 104+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-22  8:21 fsverity cleanups, speedup and memory usage optimization v2 Christoph Hellwig
2026-01-22  8:21 ` [f2fs-dev] " Christoph Hellwig
2026-01-22  8:21 ` [PATCH 01/11] fs,fsverity: reject size changes on fsverity files in setattr_prepare Christoph Hellwig
2026-01-22  8:21   ` [f2fs-dev] [PATCH 01/11] fs, fsverity: " Christoph Hellwig
2026-01-22  9:12   ` [PATCH 01/11] fs,fsverity: " Jan Kara
2026-01-22  9:12     ` [f2fs-dev] [PATCH 01/11] fs, fsverity: " Jan Kara
2026-01-22 21:21   ` [PATCH 01/11] fs,fsverity: " Darrick J. Wong
2026-01-22 21:21     ` [f2fs-dev] [PATCH 01/11] fs, fsverity: " Darrick J. Wong via Linux-f2fs-devel
2026-01-22  8:21 ` [PATCH 02/11] fs,fsverity: clear out fsverity_info from common code Christoph Hellwig
2026-01-22  8:21   ` [f2fs-dev] [PATCH 02/11] fs, fsverity: " Christoph Hellwig
2026-01-22  9:15   ` [PATCH 02/11] fs,fsverity: " Jan Kara
2026-01-22  9:15     ` [f2fs-dev] [PATCH 02/11] fs, fsverity: " Jan Kara
2026-01-22 21:22   ` [PATCH 02/11] fs,fsverity: " Darrick J. Wong
2026-01-22 21:22     ` [f2fs-dev] [PATCH 02/11] fs, fsverity: " Darrick J. Wong via Linux-f2fs-devel
2026-01-22  8:21 ` [PATCH 03/11] fsverity: pass struct file to ->write_merkle_tree_block Christoph Hellwig
2026-01-22  8:21   ` [f2fs-dev] " Christoph Hellwig
2026-01-22 10:04   ` Andrey Albershteyn
2026-01-22 10:04     ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-01-22 21:23   ` Darrick J. Wong
2026-01-22 21:23     ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-01-22  8:22 ` [PATCH 04/11] fsverity: start consolidating pagecache code Christoph Hellwig
2026-01-22  8:22   ` [f2fs-dev] " Christoph Hellwig
2026-01-22  9:18   ` Jan Kara
2026-01-22  9:18     ` [f2fs-dev] " Jan Kara
2026-01-22 10:12   ` Andrey Albershteyn
2026-01-22 10:12     ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-01-22 21:27   ` Darrick J. Wong
2026-01-22 21:27     ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-01-23  5:12     ` Christoph Hellwig
2026-01-23  5:12       ` [f2fs-dev] " Christoph Hellwig
2026-01-23  7:21       ` Darrick J. Wong
2026-01-23  7:21         ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-01-24 19:27   ` Eric Biggers
2026-01-24 19:27     ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2026-01-26  4:27     ` Christoph Hellwig
2026-01-26  4:27       ` [f2fs-dev] " Christoph Hellwig
2026-01-22  8:22 ` [PATCH 05/11] fsverity: kick off hash readahead at data I/O submission time Christoph Hellwig
2026-01-22  8:22   ` [f2fs-dev] " Christoph Hellwig
2026-01-22 21:42   ` Darrick J. Wong
2026-01-22 21:42     ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-01-23  5:14     ` Christoph Hellwig
2026-01-23  5:14       ` [f2fs-dev] " Christoph Hellwig
2026-01-23  7:22       ` Darrick J. Wong
2026-01-23  7:22         ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-01-24 20:53   ` Eric Biggers
2026-01-24 20:53     ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2026-01-26  4:30     ` Christoph Hellwig
2026-01-26  4:30       ` [f2fs-dev] " Christoph Hellwig
2026-01-22  8:22 ` [PATCH 06/11] fsverity: push out fsverity_info lookup Christoph Hellwig
2026-01-22  8:22   ` [f2fs-dev] " Christoph Hellwig
2026-01-22 21:45   ` Darrick J. Wong
2026-01-22 21:45     ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-01-24 21:19   ` Eric Biggers
2026-01-24 21:19     ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2026-01-26  4:33     ` Christoph Hellwig
2026-01-26  4:33       ` [f2fs-dev] " Christoph Hellwig
2026-01-22  8:22 ` [PATCH 07/11] fs: consolidate fsverity_info lookup in buffer.c Christoph Hellwig
2026-01-22  8:22   ` [f2fs-dev] " Christoph Hellwig
2026-01-22 21:49   ` Darrick J. Wong
2026-01-22 21:49     ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-01-23  5:15     ` Christoph Hellwig
2026-01-23  5:15       ` [f2fs-dev] " Christoph Hellwig
2026-01-23  7:23       ` Darrick J. Wong
2026-01-23  7:23         ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-01-23  7:24         ` Christoph Hellwig
2026-01-23  7:24           ` [f2fs-dev] " Christoph Hellwig
2026-01-22  8:22 ` [PATCH 08/11] ext4: consolidate fsverity_info lookup Christoph Hellwig
2026-01-22  8:22   ` [f2fs-dev] " Christoph Hellwig
2026-01-22 21:54   ` Darrick J. Wong
2026-01-22 21:54     ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-01-23  5:18     ` Christoph Hellwig
2026-01-23  5:18       ` [f2fs-dev] " Christoph Hellwig
2026-01-23  7:25       ` Darrick J. Wong
2026-01-23  7:25         ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-01-22  8:22 ` [PATCH 09/11] f2fs: " Christoph Hellwig
2026-01-22  8:22   ` [f2fs-dev] " Christoph Hellwig
2026-01-22  8:22 ` [PATCH 10/11] btrfs: " Christoph Hellwig
2026-01-22  8:22   ` [f2fs-dev] " Christoph Hellwig
2026-01-22  8:22 ` [PATCH 11/11] fsverity: use a hashtable to find the fsverity_info Christoph Hellwig
2026-01-22  8:22   ` [f2fs-dev] " Christoph Hellwig
2026-01-22 22:04   ` Darrick J. Wong
2026-01-22 22:04     ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-01-23  5:27     ` Christoph Hellwig
2026-01-23  5:27       ` [f2fs-dev] " Christoph Hellwig
2026-01-23  7:27       ` Darrick J. Wong
2026-01-23  7:27         ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-01-23  7:30         ` Christoph Hellwig
2026-01-23  7:30           ` [f2fs-dev] " Christoph Hellwig
2026-01-25  1:31   ` Eric Biggers
2026-01-25  1:31     ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2026-01-25 21:48     ` Matthew Wilcox
2026-01-25 21:48       ` [f2fs-dev] " Matthew Wilcox
2026-01-26  4:44       ` Christoph Hellwig
2026-01-26  4:44         ` [f2fs-dev] " Christoph Hellwig
2026-01-26 20:12         ` Eric Biggers
2026-01-26 20:12           ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2026-01-28 21:38           ` Matthew Wilcox
2026-01-28 21:38             ` [f2fs-dev] " Matthew Wilcox
2026-01-28 22:14             ` Eric Biggers
2026-01-28 22:14               ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2026-01-26  4:43     ` Christoph Hellwig
2026-01-26  4:43       ` [f2fs-dev] " Christoph Hellwig
2026-01-22 15:42 ` David Sterba [this message]
2026-01-22 15:42   ` [f2fs-dev] fsverity cleanups, speedup and memory usage optimization v2 David Sterba

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=20260122154215.GV26902@suse.cz \
    --to=dsterba@suse.cz \
    --cc=aalbersh@redhat.com \
    --cc=brauner@kernel.org \
    --cc=chao@kernel.org \
    --cc=dsterba@suse.com \
    --cc=ebiggers@kernel.org \
    --cc=fsverity@lists.linux.dev \
    --cc=hch@lst.de \
    --cc=jack@suse.cz \
    --cc=jaegeuk@kernel.org \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-f2fs-devel@lists.sourceforge.net \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=tytso@mit.edu \
    --cc=viro@zeniv.linux.org.uk \
    --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 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.