From: Andy Lutomirski <luto@amacapital.net>
To: "Jason A. Donenfeld" <Jason@zx2c4.com>
Cc: Andrew Lutomirski <luto@kernel.org>,
David Miller <davem@davemloft.net>, Andrew Lunn <andrew@lunn.ch>,
Eric Biggers <ebiggers@kernel.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Ard Biesheuvel <ard.biesheuvel@linaro.org>,
LKML <linux-kernel@vger.kernel.org>,
Netdev <netdev@vger.kernel.org>, Samuel Neves <sneves@dei.uc.pt>,
Jean-Philippe Aumasson <jeanphilippe.aumasson@gmail.com>,
Linux Crypto Mailing List <linux-crypto@vger.kernel.org>
Subject: Re: [PATCH net-next v3 02/17] zinc: introduce minimal cryptography library
Date: Mon, 17 Sep 2018 07:53:56 -0700 [thread overview]
Message-ID: <8937D6B1-D21C-4C47-8A89-A466CDB6FB04@amacapital.net> (raw)
In-Reply-To: <CAHmME9ohGPTX-fkhP6zaWdx3SbkiqO5kWkWE-bDk=pm-nUqYvw@mail.gmail.com>
> On Sep 16, 2018, at 10:07 PM, Jason A. Donenfeld <Jason@zx2c4.com> wrote:
>
> Hey Andy,
>
> Thanks a lot for your feedback.
>
>> On Mon, Sep 17, 2018 at 6:09 AM Andy Lutomirski <luto@kernel.org> wrote:
>> 1. Zinc conflates the addition of a new API with the replacement of
>> some algorithm implementations. This is problematic. Look at the
>> recent benchmarks of ipsec before and after this series. Apparently
>> big packets get faster and small packets get slower. It would be
>> really nice to bisect the series to narrow down *where* the regression
>> came from, but, as currently structured, you can't.
>>
>> The right way to do this is to rearrange the series. First, the new
>> Zinc APIs should be added, and they should be backed with the
>> *existing* crypto code. (If the code needs to be moved or copied to a
>> new location, so be it. The patch will be messy because somehow the
>> Zinc API is going to have to dispatch to the arch-specific code, and
>> the way that the crypto API handles it is not exactly friendly to this
>> type of use. So be it.) Then another patch should switch the crypto
>> API to use the Zinc interface. That patch, *by itself*, can be
>> benchmarked. If it causes a regression for small ipsec packets, then
>> it can be tracked down relatively easily. Once this is all done, the
>> actual crypto implementation can be changed, and that changed can be
>> reviewed on its own merits.
>
> That ipsec regression was less related to the implementation and more
> related to calling kernel_fpu_begin() unnecessarily, something I've
> now fixed. So I'm not sure that's such a good example. However, I can
> try to implement Zinc over the existing assembly (Martin's and Ard's),
> first, as you've described. This will be a pretty large amount of
> work, but if you think it's worth it for the commit history, then I'll
> do it.
Ard, what do you think? I think it would
be nice, but if the authors of that assembly are convinced it should be replaced, then this step is optional IMO.
>
>> 2. The new Zinc crypto implementations look like they're brand new. I
>> realize that they have some history, some of them are derived from
>> OpenSSL, etc, but none of this is really apparent in the patches
>> themselves.
>
> The whole point of going with these is that they _aren't_ brand new,
> yet they are very fast. Eyeballs and fuzzer hours are important, and
> AndyP's seems to get the most eyeballs and fuzzer hours, generally.
>
>> it would be nice if
>> the patches made it more clear how the code differs from its origin.
>> At the very least, though, if the replacement of the crypto code were,
>> as above, a patch that just replaced the crypto code, it would be much
>> easier to review and benchmark intelligently.
>
> You seem to have replied to the v3 thread, not the v4 thread. I've
> already started to include lots of detail about the origins of the
> code and [any] important differences in v4, and I'll continue to add
> more detail for v5.
This is indeed better. Ard’s reply covers this better.
next prev parent reply other threads:[~2018-09-17 14:54 UTC|newest]
Thread overview: 103+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-11 1:08 [PATCH net-next v3 00/17] WireGuard: Secure Network Tunnel Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 01/17] asm: simd context helper API Jason A. Donenfeld
2018-09-12 6:14 ` Kevin Easton
2018-09-12 18:10 ` Jason A. Donenfeld
2018-09-13 5:03 ` Kevin Easton
2018-09-13 13:52 ` Jason A. Donenfeld
2018-09-13 13:53 ` Jason A. Donenfeld
2018-09-15 19:58 ` Andy Lutomirski
2018-09-15 20:01 ` Jason A. Donenfeld
2018-09-17 13:14 ` Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 02/17] zinc: introduce minimal cryptography library Jason A. Donenfeld
2018-09-11 10:08 ` Ard Biesheuvel
2018-09-11 14:56 ` Greg Kroah-Hartman
2018-09-11 21:47 ` Eric Biggers
2018-09-11 22:02 ` Jason A. Donenfeld
2018-09-11 23:30 ` Andrew Lunn
2018-09-11 23:57 ` David Miller
2018-09-12 0:02 ` Jason A. Donenfeld
2018-09-17 4:09 ` Andy Lutomirski
2018-09-17 4:45 ` David Miller
2018-09-17 14:55 ` Andy Lutomirski
2018-09-17 14:59 ` Jason A. Donenfeld
2018-09-17 5:07 ` Jason A. Donenfeld
2018-09-17 14:53 ` Andy Lutomirski [this message]
2018-09-17 14:59 ` Jason A. Donenfeld
2018-09-17 16:24 ` Jason A. Donenfeld
2018-09-18 16:06 ` Ard Biesheuvel
2018-09-18 16:45 ` Jason A. Donenfeld
2018-09-17 5:26 ` Ard Biesheuvel
2018-09-17 14:51 ` Andy Lutomirski
2018-09-17 15:28 ` Jason A. Donenfeld
2018-09-17 16:06 ` Andy Lutomirski
2018-09-17 16:17 ` Jason A. Donenfeld
2018-09-17 15:31 ` Jason A. Donenfeld
2018-09-17 16:07 ` Andy Lutomirski
2018-09-17 16:16 ` Jason A. Donenfeld
2018-09-17 16:18 ` Andy Lutomirski
2018-09-18 0:56 ` Jason A. Donenfeld
2018-09-17 15:52 ` Jason A. Donenfeld
2018-09-18 4:21 ` Herbert Xu
2018-09-18 4:26 ` Jason A. Donenfeld
2018-09-18 18:53 ` Ard Biesheuvel
2018-09-18 20:36 ` Jason A. Donenfeld
2018-09-19 16:55 ` Ard Biesheuvel
2018-09-11 22:16 ` Andy Lutomirski
2018-09-11 22:18 ` Jason A. Donenfeld
2018-09-11 23:01 ` Andy Lutomirski
2018-09-12 0:01 ` Jason A. Donenfeld
2018-09-12 4:29 ` Jason A. Donenfeld
2018-09-11 21:22 ` Jason A. Donenfeld
2018-09-12 22:56 ` Ard Biesheuvel
2018-09-12 23:45 ` Andy Lutomirski
2018-09-13 5:41 ` Ard Biesheuvel
2018-09-13 14:32 ` Jason A. Donenfeld
2018-09-13 15:42 ` Ard Biesheuvel
2018-09-13 15:58 ` Jason A. Donenfeld
2018-09-14 6:15 ` Ard Biesheuvel
2018-09-14 9:53 ` Jason A. Donenfeld
2018-09-13 6:39 ` Milan Broz
2018-09-13 14:34 ` Jason A. Donenfeld
2018-09-13 15:26 ` Andy Lutomirski
2018-09-13 14:18 ` Jason A. Donenfeld
2018-09-13 15:07 ` Ard Biesheuvel
2018-09-13 14:15 ` Jason A. Donenfeld
2018-09-13 15:04 ` Ard Biesheuvel
2018-09-13 15:45 ` Jason A. Donenfeld
2018-09-11 22:08 ` Eric Biggers
2018-09-12 18:16 ` Jason A. Donenfeld
2018-09-12 18:19 ` Ard Biesheuvel
2018-09-12 18:34 ` Eric Biggers
2018-09-14 6:21 ` Ard Biesheuvel
2018-09-11 1:08 ` [PATCH net-next v3 03/17] zinc: ChaCha20 generic C implementation Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 04/17] zinc: ChaCha20 ARM and ARM64 implementations Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 05/17] zinc: ChaCha20 x86_64 implementation Jason A. Donenfeld
2018-09-11 8:22 ` Thomas Gleixner
2018-09-11 9:00 ` Samuel Neves
2018-09-11 9:09 ` Thomas Gleixner
2018-09-11 21:12 ` Jason A. Donenfeld
2018-09-11 21:27 ` Thomas Gleixner
2018-09-11 21:28 ` Jason A. Donenfeld
2018-09-11 21:48 ` Eric Biggers
2018-09-11 22:04 ` Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 06/17] zinc: ChaCha20 MIPS32r2 implementation Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 07/17] zinc: Poly1305 generic C implementation and selftest Jason A. Donenfeld
2018-09-11 1:17 ` Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 07/17] zinc: Poly1305 generic C implementations " Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 08/17] zinc: Poly1305 ARM and ARM64 implementations Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 09/17] zinc: Poly1305 x86_64 implementation Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 10/17] zinc: Poly1305 MIPS32r2 and MIPS64 implementations Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 11/17] zinc: ChaCha20Poly1305 construction and selftest Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 12/17] zinc: BLAKE2s generic C implementation " Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 13/17] zinc: BLAKE2s x86_64 implementation Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 14/17] zinc: Curve25519 generic C implementations and selftest Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 15/17] zinc: Curve25519 ARM implementation Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 16/17] zinc: Curve25519 x86_64 implementation Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 17/17] net: WireGuard secure network tunnel Jason A. Donenfeld
2018-09-11 12:59 ` kbuild test robot
2018-09-11 20:53 ` Jason A. Donenfeld
2018-09-11 13:17 ` kbuild test robot
2018-09-11 21:05 ` Jason A. Donenfeld
2018-09-11 13:30 ` Andrew Lunn
2018-09-11 21:08 ` Jason A. Donenfeld
2018-09-11 21:55 ` Andrew Lunn
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=8937D6B1-D21C-4C47-8A89-A466CDB6FB04@amacapital.net \
--to=luto@amacapital.net \
--cc=Jason@zx2c4.com \
--cc=andrew@lunn.ch \
--cc=ard.biesheuvel@linaro.org \
--cc=davem@davemloft.net \
--cc=ebiggers@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=jeanphilippe.aumasson@gmail.com \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=sneves@dei.uc.pt \
/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;
as well as URLs for NNTP newsgroup(s).