Performance Issue With OpenSSL 1.1.1c
Jakob Bohm
jb-openssl at wisemo.com
Wed May 29 14:12:24 UTC 2019
On 28/05/2019 23:48, Steffen Nurpmeso wrote:
> Jay Foster wrote in <84571f12-68b3-f7ee-7896-c891a2e253e7 at roadrunner.com>:
> |On 5/28/2019 10:39 AM, Jay Foster wrote:
> |> I built OpenSSL 1.1.1c from the recent release, but have noticed what
> |> seems like a significant performance drop compared with 1.1.1b. I
> |> notice this when starting lighttpd. With 1.1.1b, lighttpd starts in a
> |> few seconds, but with 1.1.1c, it takes several minutes.
> |>
> |> I also noticed that with 1.1.1b, the CFLAGS automatically included
> |> '-Wall -O3', but with 1.1.1c, '-Wall -O3' is no longer included in the
> |> CFLAGS. was this dropped? I added '-Wall -O3' to the CFLAGS, but
> |> this did not seem to have any affect on the performance issue
> |> (unrelated?).
> |>
> |> This is for a 32-bit ARM build.
> |>
> |> Jay
> |>
> |I think I have tracked down the change in 1.1.1c that is causing this.
> |It is the addition of the DEVRANDOM_WAIT functionality for linux in
> |e_os.h and crypto/rand/rand_unix.c. lighttpd (libcrypto) is waiting in
> |a select() call on /dev/random. After this eventually wakes up, it then
> |reads from /dev/urandom. OpenSSL 1.1.1b did not do this, but instead
> |just read from /dev/urandom. Is there more information about this
> |change (i.e., a rationale)? I did not see anything in the CHANGES file
> |about it.
>
> I do not know why lighttpd ends up on /dev/random for you, but in
> my opinion the Linux random stuff is both sophisticated and sucks.
> The latter because (it seems that many) people end up using
> haveged or similar to pimp up their entropy artificially, whereas
> on the other side the initial OS seeding is no longer truly
> supported. Writing some seed to /dev/urandom does not bring any
> entropy to the "real" pool.
Something equivalent to your program (but not storing a bitcount field)
used to be standard in Linux boot scripts before systemd. But it
typically used the old method of just writing the saved random bits
into /dev/{u,}random .
This makes me very surprised that they removed such a widely used
interface, can you point out when that was removed from the Linux
kernel?
Enjoy
Jakob
--
Jakob Bohm, CIO, Partner, WiseMo A/S. https://www.wisemo.com
Transformervej 29, 2860 Søborg, Denmark. Direct +45 31 13 16 10
This public discussion message is non-binding and may contain errors.
WiseMo - Remote Service Management for PCs, Phones and Embedded
More information about the openssl-users
mailing list