From: Herbert Xu <herbert@gondor.apana.org.au>
To: Eric Biggers <ebiggers@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
"David S. Miller" <davem@davemloft.net>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Linux Crypto Mailing List <linux-crypto@vger.kernel.org>
Subject: Re: [GIT PULL] Crypto Update for 6.15
Date: Wed, 26 Mar 2025 09:49:14 +0800 [thread overview]
Message-ID: <Z-NdGvErMGS5OT7X@gondor.apana.org.au> (raw)
In-Reply-To: <20250325152541.GA1661@sol.localdomain>
On Tue, Mar 25, 2025 at 08:25:41AM -0700, Eric Biggers wrote:
>
> Herbert didn't mention that I have nacked this patch, which he is insisting on
> pushing for some reason instead of my original version that is much better.
Let's see how your version is so much better:
https://lore.kernel.org/all/20250212154718.44255-6-ebiggers@kernel.org/
- /* Up to 1 + FS_VERITY_MAX_LEVELS pages may be mapped at once */
- BUILD_BUG_ON(1 + FS_VERITY_MAX_LEVELS > KM_MAX_IDX);
+ /*
+ * Up to FS_VERITY_MAX_PENDING_DATA_BLOCKS + FS_VERITY_MAX_LEVELS pages
+ * may be mapped at once.
+ */
+ BUILD_BUG_ON(FS_VERITY_MAX_PENDING_DATA_BLOCKS +
+ FS_VERITY_MAX_LEVELS > KM_MAX_IDX);
This arbitrary limit is a direct result of your welded-on commitment
to an API that supports virtually mapped addresses only. Make no
mistake, virtual addresses are simple and easy to use, but the kernel
added more complicated constructs for real reasons.
I've gone through your use-case in fsverity/dm-verity, and they
never touch the data at all so the only reason for it to kmap the
data at all is to feed it to the Crypto API, which is capable of
doing its own kmap but you elected not to use that because you
hate the interface.
In fact it's a recurring theme, the zswap code jumps through multiple
hoops to map the data they're working on so that they can feed it to
the Crypto API as a virtually mapped pointer, even though they never
touch the mapped data at all. The same thing also happened in ubifs,
which I managed to simplify by switching away from kmapped pointers:
https://patchwork.kernel.org/project/linux-crypto/patch/99ae6a15afc1478bab201949dc3dbb2c7634b687.1742034499.git.herbert@gondor.apana.org.au/
- addr += UBIFS_BLOCK_SIZE;
- if (folio_test_highmem(folio) && (offset_in_page(addr) == 0)) {
- kunmap_local(addr - UBIFS_BLOCK_SIZE);
- addr = kmap_local_folio(folio, i * UBIFS_BLOCK_SIZE);
- }
+ offset += UBIFS_BLOCK_SIZE;
All this complexity was added because the legacy compression
interface only supported virtually mapped addresses.
Sure the ahash/acomp interface was suboptimal for *only* supporting
SG lists, which is what this pull request addresses by adding virtual
address (and folio) support.
> Let me reiterate why "request chaining" is a bad idea and is going to cause
> problems.
I'm more than willing to discuss with you the implementation details
of how the chaining is done and improving it. However, if you proceed
to only issue blanket nacks without providing any constructive feedback,
then the only thing I can do is ignore you.
> In contrast, my patchset
> https://lore.kernel.org/r/20250212154718.44255-1-ebiggers@kernel.org/ supports
> multibuffer hashing in a much better way and has been ready for a year already.
> It actually works; it has a smaller diffstat; it is faster; it has a much
> simpler API; and it actually includes all needed pieces including x86 and arm64
> support, dm-verity and fs-verity support, and full documentation and tests.
Everybody wants to sratch their itch but my job as the maintainer is
to ensure that the subsystem doesn't collapse into an unmaintainable
hodgepodge of individual contributions.
Yes I get that batching is useful for you, but your use-case is not
unique at all. The compression people are proposing pretty much the
same thing
https://patchwork.kernel.org/project/linux-crypto/patch/20250303084724.6490-15-kanchana.p.sridhar@intel.com/
I don't want to be pressured by you into committing to an interface
that works for you only.
> Nacked-by: Eric Biggers <ebiggers@kernel.org>
This pull request doesn't even contain the meat of the hash changes
since I've been busy with the compression work. So this is simply
a pre-emptive strike to stop further work from rendering your patches
obsolete.
Cheers,
--
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
next prev parent reply other threads:[~2025-03-26 1:49 UTC|newest]
Thread overview: 204+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-03 4:40 [GIT PULL] Crypto Update for 5.9 Herbert Xu
2020-08-03 17:55 ` pr-tracker-bot
2020-08-30 22:33 ` [GIT PULL] Crypto Fixes " Herbert Xu
2020-08-30 23:02 ` pr-tracker-bot
2020-09-10 0:34 ` Herbert Xu
2020-09-10 2:48 ` pr-tracker-bot
2020-10-26 1:11 ` [GIT PULL] Crypto Fixes for 5.10 Herbert Xu
2020-10-26 17:52 ` pr-tracker-bot
2020-12-27 11:32 ` [GIT PULL] Crypto Fixes for 5.11 Herbert Xu
2020-12-27 17:27 ` pr-tracker-bot
2021-01-08 3:54 ` Herbert Xu
2021-01-08 20:36 ` pr-tracker-bot
2021-01-18 5:13 ` Herbert Xu
2021-01-18 21:16 ` pr-tracker-bot
2021-01-25 22:36 ` Herbert Xu
2021-01-26 0:01 ` pr-tracker-bot
2021-07-08 3:09 ` [GIT PULL] Crypto Fixes for 5.14 Herbert Xu
2021-07-09 19:20 ` pr-tracker-bot
2021-08-17 1:36 ` Herbert Xu
2021-08-17 2:27 ` pr-tracker-bot
2021-09-29 2:38 ` [GIT PULL] Crypto Fixes for 5.15 Herbert Xu
2021-09-29 14:51 ` pr-tracker-bot
2021-10-29 4:14 ` Herbert Xu
2021-10-29 17:39 ` Linus Torvalds
2021-11-02 4:01 ` Herbert Xu
2021-10-29 18:49 ` pr-tracker-bot
2021-11-12 10:48 ` [GIT PULL] Crypto Fixes for 5.16 Herbert Xu
2021-11-12 20:42 ` pr-tracker-bot
2021-12-22 5:13 ` Herbert Xu
2021-12-22 19:02 ` pr-tracker-bot
2022-02-09 2:33 ` [GIT PULL] Crypto Fixes for 5.17 Herbert Xu
2022-02-09 18:01 ` pr-tracker-bot
2022-03-16 1:13 ` Herbert Xu
2022-03-17 20:40 ` pr-tracker-bot
2022-03-31 3:16 ` [GIT PULL] Crypto Fixes for 5.18 Herbert Xu
2022-03-31 19:12 ` pr-tracker-bot
2022-05-20 5:41 ` Herbert Xu
2022-05-20 6:10 ` pr-tracker-bot
2022-05-27 11:29 ` [GIT PULL] Crypto Fixes for 5.19 Herbert Xu
2022-05-28 1:21 ` pr-tracker-bot
2022-06-17 8:29 ` Herbert Xu
2022-06-17 15:29 ` pr-tracker-bot
2022-06-30 7:56 ` Herbert Xu
2022-06-30 17:28 ` pr-tracker-bot
2022-08-31 8:55 ` [GIT PULL] Crypto Fixes for 6.0 Herbert Xu
2022-08-31 17:20 ` pr-tracker-bot
2022-10-17 4:38 ` [GIT PULL] Crypto Fixes for 6.1 Herbert Xu
2022-10-17 17:51 ` pr-tracker-bot
2022-10-28 4:58 ` Herbert Xu
2022-10-28 17:00 ` Linus Torvalds
2022-11-02 9:49 ` Herbert Xu
2022-10-28 17:02 ` pr-tracker-bot
2023-01-06 9:15 ` [GIT PULL] Crypto Fixes for 6.2 Herbert Xu
2023-01-06 21:19 ` pr-tracker-bot
2023-03-05 10:15 ` [GIT PULL] Crypto Fixes for 6.3 Herbert Xu
2023-03-05 19:37 ` pr-tracker-bot
2023-05-07 13:19 ` [GIT PULL] Crypto Fixes for 6.4 Herbert Xu
2023-05-07 18:12 ` pr-tracker-bot
2023-05-29 3:41 ` Herbert Xu
2023-05-29 11:39 ` pr-tracker-bot
2023-07-09 23:51 ` [GIT PULL] Crypto Fixes for 6.5 Herbert Xu
2023-07-10 17:20 ` pr-tracker-bot
2023-08-21 3:37 ` Herbert Xu
2023-08-21 5:09 ` pr-tracker-bot
2023-08-31 5:16 ` [GIT PULL] Crypto Fixes for 6.6 Herbert Xu
2023-09-01 23:19 ` pr-tracker-bot
2023-09-22 2:10 ` Herbert Xu
2023-09-22 16:43 ` pr-tracker-bot
2023-10-10 8:46 ` Herbert Xu
2023-10-10 18:54 ` pr-tracker-bot
2023-10-21 9:23 ` Herbert Xu
2023-10-21 17:57 ` pr-tracker-bot
2023-11-09 4:30 ` [GIT PULL] Crypto Fixes for 6.7 Herbert Xu
2023-11-10 1:30 ` pr-tracker-bot
2022-08-02 6:05 ` [GIT PULL] Crypto Update for 5.20 Herbert Xu
2022-08-03 0:57 ` pr-tracker-bot
2022-10-04 8:54 ` [GIT PULL] Crypto Update for 6.1 Herbert Xu
2022-10-10 20:56 ` pr-tracker-bot
2022-12-14 8:15 ` [GIT PULL] Crypto Update for 6.2 Herbert Xu
2022-12-14 22:25 ` pr-tracker-bot
2023-02-20 5:22 ` [GIT PULL] Crypto Update for 6.3 Herbert Xu
2023-02-22 2:50 ` pr-tracker-bot
2023-04-24 4:52 ` [GIT PULL] Crypto Update for 6.4 Herbert Xu
2023-04-26 17:06 ` pr-tracker-bot
2023-06-29 5:06 ` [GIT PULL] Crypto Update for 6.5 Herbert Xu
2023-07-01 5:04 ` pr-tracker-bot
2023-08-28 9:22 ` [GIT PULL] Crypto Update for 6.6 Herbert Xu
2023-08-29 19:00 ` pr-tracker-bot
2023-11-02 6:56 ` [GIT PULL] Crypto Update for 6.7 Herbert Xu
2023-11-03 2:34 ` Linus Torvalds
2023-11-03 5:52 ` Herbert Xu
2023-11-03 6:32 ` Linus Torvalds
2023-11-06 10:00 ` [PATCH] crypto: jitterentropy - Hide esoteric Kconfig options under FIPS and EXPERT Herbert Xu
2023-11-06 15:25 ` Stephan Mueller
2023-11-10 9:04 ` Geert Uytterhoeven
2023-11-03 2:37 ` [GIT PULL] Crypto Update for 6.7 pr-tracker-bot
2024-01-09 22:17 ` [GIT PULL] Crypto Update for 6.8 Herbert Xu
2024-01-10 20:38 ` pr-tracker-bot
2024-02-01 5:32 ` [GIT PULL] Crypto Fixes " Herbert Xu
2024-02-01 18:23 ` pr-tracker-bot
2024-02-08 4:29 ` Herbert Xu
2024-02-08 6:24 ` pr-tracker-bot
2024-02-21 9:10 ` Herbert Xu
2024-02-21 17:17 ` pr-tracker-bot
2024-02-28 8:07 ` Herbert Xu
2024-02-28 17:48 ` pr-tracker-bot
2024-03-06 9:47 ` Herbert Xu
2024-03-06 16:33 ` pr-tracker-bot
2024-03-25 9:47 ` [GIT PULL] Crypto Fixes for 6.9 Herbert Xu
2024-03-25 18:18 ` pr-tracker-bot
2024-05-20 3:26 ` [GIT PULL] Crypto Fixes for 6.10 Herbert Xu
2024-05-20 16:33 ` pr-tracker-bot
2024-05-29 4:17 ` Herbert Xu
2024-05-29 17:11 ` pr-tracker-bot
2024-06-28 0:40 ` Herbert Xu
2024-06-28 1:01 ` pr-tracker-bot
2024-09-23 3:08 ` [GIT PULL] Crypto Fixes for 6.12 Herbert Xu
2024-09-24 18:04 ` pr-tracker-bot
2024-10-16 5:37 ` Herbert Xu
2024-10-16 20:51 ` pr-tracker-bot
2024-10-21 5:45 ` Herbert Xu
2024-10-21 18:27 ` pr-tracker-bot
2024-11-15 11:51 ` Herbert Xu
2024-11-15 18:59 ` pr-tracker-bot
2024-12-14 9:21 ` [GIT PULL] Crypto Fixes for 6.13 Herbert Xu
2024-12-14 17:18 ` pr-tracker-bot
2025-03-31 4:50 ` [GIT PULL] Crypto Fixes for 6.15 Herbert Xu
2025-04-05 2:23 ` Herbert Xu
2025-04-05 3:09 ` pr-tracker-bot
2025-04-16 5:16 ` Herbert Xu
2025-04-16 15:24 ` pr-tracker-bot
2025-04-24 9:07 ` Herbert Xu
2025-04-24 16:29 ` pr-tracker-bot
2025-04-30 2:47 ` Herbert Xu
2025-04-30 4:19 ` pr-tracker-bot
2025-05-21 1:59 ` Herbert Xu
2025-05-21 3:15 ` pr-tracker-bot
2024-03-15 3:04 ` [GIT PULL] Crypto Update for 6.9 Herbert Xu
2024-03-15 21:51 ` Linus Torvalds
2024-03-16 4:39 ` Herbert Xu
2024-03-15 21:59 ` pr-tracker-bot
2024-05-13 3:50 ` [GIT PULL] Crypto Update for 6.10 Herbert Xu
2024-05-13 22:12 ` Linus Torvalds
2024-05-14 5:17 ` Herbert Xu
2024-05-14 5:41 ` Linus Torvalds
2024-05-14 6:02 ` Herbert Xu
2024-05-14 6:54 ` Lukas Wunner
2024-05-14 17:07 ` Linus Torvalds
2024-05-13 22:38 ` pr-tracker-bot
2024-07-18 13:49 ` [GIT PULL] Crypto Update for 6.11 Herbert Xu
2024-07-19 18:09 ` pr-tracker-bot
2024-09-16 3:59 ` [GIT PULL] Crypto Update for 6.12 Herbert Xu
2024-09-16 4:55 ` pr-tracker-bot
2024-11-18 3:18 ` [GIT PULL] Crypto Update for 6.13 Herbert Xu
2024-11-19 19:06 ` pr-tracker-bot
2025-01-23 11:10 ` [GIT PULL] Crypto Update for 6.14 Herbert Xu
2025-01-24 16:05 ` pr-tracker-bot
2025-03-25 5:53 ` [GIT PULL] Crypto Update for 6.15 Herbert Xu
2025-03-25 15:25 ` Eric Biggers
2025-03-25 16:59 ` Ard Biesheuvel
2025-03-26 1:49 ` Herbert Xu [this message]
2025-03-26 2:16 ` Herbert Xu
2025-03-26 3:34 ` Eric Biggers
2025-03-26 3:52 ` Herbert Xu
2025-03-30 2:33 ` Chaining is dead Herbert Xu
2025-03-31 16:56 ` Eric Biggers
2025-04-01 2:44 ` Herbert Xu
2025-04-01 3:33 ` Eric Biggers
2025-04-01 3:55 ` Herbert Xu
2025-04-01 4:08 ` Eric Biggers
2025-04-01 4:14 ` Herbert Xu
2025-04-01 7:20 ` Milan Broz
2025-04-01 3:30 ` Herbert Xu
2025-04-01 3:39 ` Eric Biggers
2025-04-04 8:46 ` Christoph Hellwig
2025-03-26 3:20 ` [GIT PULL] Crypto Update for 6.15 Eric Biggers
2025-03-26 3:30 ` Herbert Xu
2025-03-29 17:40 ` Linus Torvalds
2025-03-29 18:06 ` Eric Biggers
2025-03-29 18:17 ` Linus Torvalds
2025-03-29 18:19 ` Linus Torvalds
2025-03-29 18:38 ` Eric Biggers
2025-03-29 18:52 ` Linus Torvalds
2025-03-29 18:24 ` pr-tracker-bot
2020-10-12 3:32 ` [GIT PULL] Crypto Update for 5.10 Herbert Xu
2020-10-13 16:24 ` pr-tracker-bot
2020-12-14 5:55 ` [GIT PULL] Crypto Update for 5.11 Herbert Xu
2020-12-14 20:56 ` pr-tracker-bot
2021-02-15 2:47 ` [GIT PULL] Crypto Update for 5.12 Herbert Xu
2021-02-22 1:28 ` pr-tracker-bot
2021-04-26 12:32 ` [GIT PULL] Crypto Update for 5.13 Herbert Xu
2021-04-26 15:59 ` pr-tracker-bot
2021-06-28 11:00 ` [GIT PULL] Crypto Update for 5.14 Herbert Xu
2021-06-28 23:36 ` pr-tracker-bot
2021-08-30 8:28 ` [GIT PULL] Crypto Update for 5.15 Herbert Xu
2021-08-30 20:17 ` pr-tracker-bot
2021-11-02 3:52 ` [GIT PULL] Crypto Update for 5.16 Herbert Xu
2021-11-02 4:27 ` pr-tracker-bot
2022-01-11 2:04 ` [GIT PULL] Crypto Update for 5.17 Herbert Xu
2022-01-11 20:53 ` pr-tracker-bot
2022-03-20 23:42 ` [GIT PULL] Crypto Update for 5.18 Herbert Xu
2022-03-21 23:14 ` Linus Torvalds
2022-03-22 5:49 ` Herbert Xu
2022-03-21 23:18 ` pr-tracker-bot
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=Z-NdGvErMGS5OT7X@gondor.apana.org.au \
--to=herbert@gondor.apana.org.au \
--cc=davem@davemloft.net \
--cc=ebiggers@kernel.org \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@linux-foundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox