From: Petr Vorel <pvorel@suse.cz>
To: Eric Biggers <ebiggers@kernel.org>
Cc: ltp@lists.linux.it
Subject: Re: [LTP] [PATCH] statx09: Reduce fs-verity blocksize to 1024
Date: Fri, 14 Jul 2023 13:47:19 +0200 [thread overview]
Message-ID: <20230714114719.GB958548@pevik> (raw)
In-Reply-To: <20230714034048.GA913@sol.localdomain>
Hi Eric, Martin,
Eric, thanks for your input, Martin, thanks for working on this.
> Hi Martin,
> On Thu, Jul 13, 2023 at 03:28:52PM +0200, Martin Doucha wrote:
> > The kernel requires that fs-verity blocksize must be at most equal
> > to the filesystem blocksize. Testing on small loop device means that
> > mkfs.ext4 will very likely default to blocksize of 1024. Set fs-verity
> > blocksize to the minimum possible value (1024) to avoid blocksize
> > mismatch.
Yes kernels < 6.3 TCONF on current master:
statx09.c:124: TCONF: fs-verity not supported on loopdev
And 6.3 fails:
statx09.c:109: TBROK: ioctl(3, FS_IOC_ENABLE_VERITY) failed: EINVAL (22)
> > Signed-off-by: Martin Doucha <mdoucha@suse.cz>
> > ---
> > Alternatively, we could add "-b 4096" to .dev_fs_opts.
> > testcases/kernel/syscalls/statx/statx09.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> > diff --git a/testcases/kernel/syscalls/statx/statx09.c b/testcases/kernel/syscalls/statx/statx09.c
> > index c03d2c91e..dc9786c76 100644
> > --- a/testcases/kernel/syscalls/statx/statx09.c
> > +++ b/testcases/kernel/syscalls/statx/statx09.c
> > @@ -94,7 +94,7 @@ static void flag_setup(void)
> > memset(&enable, 0, sizeof(enable));
> > enable.version = 1;
> > enable.hash_algorithm = hash_algorithms[0];
> > - enable.block_size = 4096;
> > + enable.block_size = 1024;
> > enable.salt_size = 0;
> > enable.salt_ptr = (intptr_t)NULL;
> > enable.sig_size = 0;
> > --
> Support for Merkle tree block sizes less than the page size didn't exist until
> kernel version 6.3. Please see the documentation for FS_IOC_ENABLE_VERITY
> (https://www.kernel.org/doc/html/latest/filesystems/fsverity.html#fs-ioc-enable-verity):
> "block_size is the Merkle tree block size, in bytes. In Linux v6.3 and
> later, this can be any power of 2 between (inclusively) 1024 and the minimum
> of the system page size and the filesystem block size. In earlier versions,
> the page size was the only allowed value."
> There are a few different approaches you could take. One would be the one you
> mentioned: just add "-b 4096". Though, note that systems with non-4K pages and
> kernel older than v6.3 can't mount an "-O verity -b 4096" filesystem.
I suppose the problem would be with e.g. ppc64le. Because otherwise
it works with this setup (untested on ppc64le, I believe it'd fail):
.dev_fs_opts = (const char *const []){"-O verity", "-b 4096", NULL},
and kept enable.block_size = 4096
the test passes on older kernels 6.2.12-1-default (openSUSE), 5.10.0-8-amd64
(Debian) as well as on 6.3 kernel.
> Or you could query the filesystem block size (that resulted from mkfs.ext4 with
> unspecified block size) and use that as the Merkle tree block size.
Unless it's not too complicated, it looks to me the best, as it'd support both
>= 6.3 and older kernels.
> Or you could simply make the test depend on kernel v6.3, I suppose.
If possible I'd prefer to keep functionality also for older kernels.
Another (IMHO not really good option) would be to acquire device big enough via
.dev_min_size (it'd probably have to be too big device).
Kind regards,
Petr
> - Eric
--
Mailing list info: https://lists.linux.it/listinfo/ltp
next prev parent reply other threads:[~2023-07-14 11:47 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-13 13:28 [LTP] [PATCH] statx09: Reduce fs-verity blocksize to 1024 Martin Doucha
2023-07-14 3:40 ` Eric Biggers
2023-07-14 11:47 ` Petr Vorel [this message]
2023-07-14 11:49 ` Petr Vorel
2023-07-14 12:32 ` Martin Doucha
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=20230714114719.GB958548@pevik \
--to=pvorel@suse.cz \
--cc=ebiggers@kernel.org \
--cc=ltp@lists.linux.it \
/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.