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(-) >