[dpdk-dev] [PATCH v4 0/2] eal: choose initial PRNG seed source at runtime

Dan Gora dg at adax.com
Mon Jun 29 20:01:13 CEST 2020


On Mon, Jun 29, 2020 at 6:32 AM Mattias Rönnblom
<mattias.ronnblom at ericsson.com> wrote:
>
> On 2020-04-23 01:42, Dan Gora wrote:
> > Hi All,
> >
> > The following patches updates the rte_random subsystem to dynamically find
> > the best source of the initial seed to the PRNG at run time.
> >
> > The first patch enables dynamic checking for the rdseed instruction and
> > removes the requirement for it on the execution system.  It also ensures
> > that the code to use the rdseed instruction is generated, even if the host
> > compilation system does not support it (on x86 systems).
> >
> > The second patch emulates the getentropy() glibc function by reading bytes
> > from /dev/urandom.  This removes an unnecessary dependency on glibc 2.25.
> >
> > v4:  Note that emulating getentropy by reading from /dev/urandom should
> > never fail, so now the question is if we should just remove the rdseed
> > method entirely since it's x86 only?  Should we remove the fallback to
> > rte_get_tsc_cycles()?
> >
> > Thanks
> > Dan
> >
> > -----
> > v2:
> > * Fix patch apply issue.
> > * dlclose() handle if dlsym() fails in __rte_getentropy().
> >
> > v3:
> > * Fix error checking of dlsym() in __rte_getentropy().
> > * Style changes recommended by Mattias.
> >
> > v4:
> > * Replace dlopen/dlsym method with reading from /dev/urandom.
> > * Try rdseed method before getentropy() method since the
> >    latter should never fail.
>
>
> I see no reason to prefer rdseed over the kernel.

Let me give you a good reason.  The reason that this change was done...

Since rte_getentropy() is now available on all systems (with these
patches) and cannot fail. rdseed can either 1) go before
rte_getentropy() or 2) be completely removed.

What do you recommend?

thanks
dan


More information about the dev mailing list