[dpdk-dev] [PATCH v4 2/2] eal: emulate glibc getentropy for initial random seed
Stephen Hemminger
stephen at networkplumber.org
Thu Apr 23 04:39:39 CEST 2020
On Wed, 22 Apr 2020 20:42:54 -0300
Dan Gora <dg at adax.com> wrote:
> + fd = open("/dev/urandom", O_RDONLY);
> + if (fd < 0) {
> + errno = ENODEV;
> + return -1;
> + }
> +
> + end = start + length;
> + while (start < end) {
> + bytes = read(fd, start, end - start);
> + if (bytes < 0) {
You are overdoing the complexity here. More error handling is not better.
1. This should only be called once at startup EINTR is not an issue then
2. The amount requested is always returned when using urandom (see man page for random(4))
The O_NONBLOCK flag has no effect when opening /dev/urandom. When calling
read(2) for the device /dev/urandom, reads of up to 256 bytes will return as
many bytes as are requested and will not be interrupted by a signal handler.
Reads with a buffer over this limit may return less than the requested number
of bytes or fail with the error EINTR, if interrupted by a signal handler.
More information about the dev
mailing list