[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Z67M6iSoMyvGwkAF@gondor.apana.org.au>
Date: Fri, 14 Feb 2025 12:56:10 +0800
From: Herbert Xu <herbert@...dor.apana.org.au>
To: Eric Biggers <ebiggers@...nel.org>
Cc: fsverity@...ts.linux.dev, linux-crypto@...r.kernel.org,
dm-devel@...ts.linux.dev, x86@...nel.org,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
Ard Biesheuvel <ardb@...nel.org>,
Sami Tolvanen <samitolvanen@...gle.com>,
Alasdair Kergon <agk@...hat.com>, Mike Snitzer <snitzer@...nel.org>,
Linus Torvalds <torvalds@...ux-foundation.org>,
Mikulas Patocka <mpatocka@...hat.com>,
David Howells <dhowells@...hat.com>, netdev@...r.kernel.org
Subject: Re: [PATCH v8 0/7] Optimize dm-verity and fsverity using multibuffer
hashing
On Thu, Feb 13, 2025 at 08:29:51PM -0800, Eric Biggers wrote:
>
> That doesn't actually exist, and your code snippet is also buggy (undefined
> behavior) because it never sets the tfm pointer in the ahash_request. So this
Well thanks for pointing out that deficiency. It would be good
to be able to set the tfm in the macro, something like:
#define SYNC_AHASH_REQUEST_ON_STACK(name, _tfm) \
char __##name##_desc[sizeof(struct ahash_request) + \
MAX_SYNC_AHASH_REQSIZE \
] CRYPTO_MINALIGN_ATTR; \
struct ahash_request *name = (((struct ahash_request *)__##name##_desc)->base.tfm = crypto_sync_ahash_tfm((_tfm)), (void *)__##name##_desc)
> just shows that you still can't use your own proposed APIs correctly because
> they're still too complex. Yes the virt address support would be an improvement
> on current ahash, but it would still be bolted onto an interface that wasn't
> designed for it. There would still be the weirdness of having to initialize so
> many unnecessary fields in the request, and having "synchronous asynchronous
> hashes" which is always a fun one to try to explain to people. The shash and
> lib/crypto/ interfaces are much better as they do not have these problems.
I'm more than happy to rename ahash to hash. The only reason
it was called ahash is to distinguish it from shash, which will
no longer be necessary.
> never use exactly the same API anyway, just similar ones. And FWIW, zswap is
> synchronous, so yet again all the weird async stuff just gets in the way.
I think you're again conflating two different concepts. Yes
zswap/iaa are sleepable, but they're not synchronous. This comes
into play because iaa is also useable by IPsec, which is most
certainly not sleepable.
Cheers,
--
Email: Herbert Xu <herbert@...dor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Powered by blists - more mailing lists