[dpdk-dev] [RFC PATCH] eal: rte_rand yields only 62 random bits

2015-03-31 Thread Stephen Hemminger
Plus the driver and sched uses really only need of few bits of crap random number. Probably simple BSD random (32 bits) is more than enough On Mon, Mar 30, 2015 at 6:51 PM, Neil Horman wrote: > On Mon, Mar 30, 2015 at 06:19:28PM -0400, Robert Sanford wrote: > > Yes, applications have many choice

[dpdk-dev] [RFC PATCH] eal: rte_rand yields only 62 random bits

2015-03-30 Thread Neil Horman
On Mon, Mar 30, 2015 at 06:19:28PM -0400, Robert Sanford wrote: > Yes, applications have many choices for PRNGs. But, we still need one > internally for the following libs: PMDs (e1000, fm10k, i40e, ixgbe, virtio, > xenvirt), sched, and timer. > They can be updated to use the apropriate rng from a

[dpdk-dev] [RFC PATCH] eal: rte_rand yields only 62 random bits

2015-03-30 Thread Robert Sanford
Yes, applications have many choices for PRNGs. But, we still need one internally for the following libs: PMDs (e1000, fm10k, i40e, ixgbe, virtio, xenvirt), sched, and timer. On Fri, Mar 27, 2015 at 8:03 PM, Stephen Hemminger < stephen at networkplumber.org> wrote: > I would argue remove rte_rand

[dpdk-dev] [RFC PATCH] eal: rte_rand yields only 62 random bits

2015-03-29 Thread Stephen Hemminger
if some one needs PRNG, th GNU scientific library has lots of them https://www.gnu.org/software/gsl/manual/html_node/Random-number-generator-algorithms.html On Fri, Mar 27, 2015 at 5:38 PM, Matthew Hall wrote: > On Fri, Mar 27, 2015 at 05:03:02PM -0700, Stephen Hemminger wrote: > > I would argue

[dpdk-dev] [RFC PATCH] eal: rte_rand yields only 62 random bits

2015-03-27 Thread Matthew Hall
On Fri, Mar 27, 2015 at 05:03:02PM -0700, Stephen Hemminger wrote: > I would argue remove rte_rand from DPDK. +1 To paraphrase Donald Knuth, "Random numbers should not be generated [using a function coded] at random." It'd be better to fix libc, or considering that has a slow dev cycle and pla

[dpdk-dev] [RFC PATCH] eal: rte_rand yields only 62 random bits

2015-03-27 Thread Stephen Hemminger
I would argue remove rte_rand from DPDK. On Fri, Mar 27, 2015 at 9:38 AM, Sanford, Robert wrote: > Never mind ... I cancel the previous suggestion. After further reading on > RNGs, I believe we should abandon the use of lrand48() and implement our > own RNG based on the so-called KISS family of

[dpdk-dev] [RFC PATCH] eal: rte_rand yields only 62 random bits

2015-03-27 Thread Stephen Hemminger
Please do this work upstream in glibc rather than in the corner case of DPDK. On Fri, Mar 27, 2015 at 9:38 AM, Sanford, Robert wrote: > Never mind ... I cancel the previous suggestion. After further reading on > RNGs, I believe we should abandon the use of lrand48() and implement our > own RNG

[dpdk-dev] [RFC PATCH] eal: rte_rand yields only 62 random bits

2015-03-27 Thread Sanford, Robert
Never mind ... I cancel the previous suggestion. After further reading on RNGs, I believe we should abandon the use of lrand48() and implement our own RNG based on the so-called KISS family of RNGs originally proposed by the late George Marsaglia. In his excellent paper, "Good Practice in (Pseudo)

[dpdk-dev] [RFC PATCH] eal: rte_rand yields only 62 random bits

2015-03-17 Thread Robert Sanford
The implementation of rte_rand() returns only 62 bits of pseudo-randomness, because the underlying calls to lrand48() "return non-negative long integers uniformly distributed between 0 and 2^31." We have written a potential fix, but before we spend more time testing and refining it, I wanted to c