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.


>
>
> Dan Gora (2):
>    eal: check for rdseed at run time for random seed
>    eal: emulate glibc getentropy for initial random seed
>
>   config/x86/meson.build             | 11 +++--
>   lib/librte_eal/common/rte_random.c | 79 ++++++++++++++++++++++++------
>   lib/librte_eal/meson.build         |  3 --
>   mk/rte.cpuflags.mk                 |  9 +++-
>   4 files changed, 79 insertions(+), 23 deletions(-)
>

Reply via email to