[PATCH v4 1/3] random: add rte_drand() function

Stephen Hemminger stephen at networkplumber.org
Thu May 26 17:28:05 CEST 2022


On Thu, 26 May 2022 15:20:29 +0200
Mattias Rönnblom <hofors at lysator.liu.se> wrote:

> > +#else
> > +	/* Slower method requiring floating point divide
> > +	 *  
> 
> Do you know how much slower? I ran rand_perf_test on two of my systems.
> 
>                        AMD 5900X     Pi4 (ARM Cortex-A72)
> IEEE754 version          12              1.19
> Non-IEEE754 version      11              1.16
> Naive version*           24              1.16
> 
> * (double)rte_rand() / (double)UINT64_MAX
> 
> Numbers are TSC cycles/op.
> 
> Surprisingly, it seems like the IEEE754 version is slower on both of 
> these machines.
> 
> Do you have a machine (or a different use case) where the supposedly 
> more optimized version actually runs faster?

The direct method is based off the concept used by glibc and others
and the divide (including spelling error) are from FreeBSD.

Be careful with micro benchmarks. A better one would be do
rte_drand() compared with something to check whether it is in range.



More information about the dev mailing list