generated from amazon-archives/__template_Custom
-
Notifications
You must be signed in to change notification settings - Fork 94
Open
Labels
Description
Downstream in rustls we have some simple performance tests that show a 26000% regression in full handshake performance when taking the aws-lc-rs 1.14.0 -> 1.14.1 upgrade.
This is measured in valgrind instruction-equivalents, and those go from approx 1,500,000 insns (1.14.0) to 423,000,000 insns (1.14.1).
I haven't looked into this in detail yet, but a few observations so far:
- this is a non-FIPS use, so is jitterent the right thing to be using? I thought it was a legalistic work-around for FIPS requirements about having a standalone entropy source.
- SHA3 has generally poor CPU performance compared to SHA2 (especially when SHA2 has wide CPU support, but SHA3 does not yet), so is that a good choice for a default entropy source?
- It seems the jitter entropy code has its own SHA3 code? What's up with that?
- It seems the jitter entropy code is compiled with
-O0. Intentional?
At this point it's unclear to me whether this is "real" or specific to how valgrind measures things.