locks and kernel randomness...

John-Mark Gurney jmg at funkthat.com
Tue Feb 24 19:44:37 UTC 2015


Ian Lepore wrote this message on Tue, Feb 24, 2015 at 12:05 -0700:
> On Tue, 2015-02-24 at 10:30 -0800, John-Mark Gurney wrote:
> > Warner Losh wrote this message on Tue, Feb 24, 2015 at 11:03 -0700:
> > > 
> > > > On Feb 24, 2015, at 10:40 AM, John-Mark Gurney <jmg at funkthat.com> wrote:
> > > > 
> > > > Warner Losh wrote this message on Tue, Feb 24, 2015 at 07:56 -0700:
> > > >> Then again, if you want to change random(), provide a weak_random() that???s
> > > >> the traditional non-crypto thing that???s fast and lockless. That would make it easy
> > > >> to audit in our tree. The scheduler doesn???t need cryptographic randomness, it
> > > >> just needs to make different choices sometimes to ensure its notion of fairness.
> > > > 
> > > > I do not support having a weak_random...  If the consumer is sure
> > > > enough that you don't need a secure random, then they can pick an LCG
> > > > and implement it themselves and deal (or not) w/ the locking issues...
> > > > 
> > > > It appears that the scheduler had an LCG but for some reason the authors
> > > > didn't feel like using it here..
> > > 
> > > Why don???t you support having a common random routine that???s to mix the
> > > pot, but not cryptographically secure? Lots of algorithms use them, and having
> > > a common one would keep us from reinventing the wheel.
> > 
> > Why can't these algorithms use a cryptographically secure RNG instead?
> > No one has truely answered that point..  Everyone says they want to use
> > an insecure RNG, but the real question is, why can't/shouldn't these
> > algorithms use a CSPRNG?
> 
> Because of performance.  Not everything needs crypto-strength
> randomness.

LOL...

If you need something that gives you more than 500MB/sec of randomness,
using an LCG is the least of your worries, and you need to be implementing
you're own anyways...

> The problem here is that you are never going to accept the validity of
> that statement no matter how many of us complain over and over again
> about this kind of thing.  You've got some religion that the rest of us

Give me examples of code in the tree that needs high performance, low
quality randomness, and I will agree with you and provide the interface,
but as long as you continue to create strawmen, I won't...

The example we've been discussing of the scheduler is called LESS than
once a second!  OMG! soo many cycles wasted!

> don't buy into, and you've got it fervently enough that you'll just keep
> saying the same mindless things over and over again until we all get
> bored and wander away.

Just like you keep mindless saying that people need an LCG because
performance, trust us! Performance!  Performance!

> And freebsd gets a little more bloated and a little slower and a lot
> less able to run on anything except the very fastest hardware that was
> just released last week.  Thanks for "improving" it in that way.

Again, give me an example of calling random(9) more than 100 times per
second, or testing w/ my patch, and showing more than .01% cpu in random
and I'll have an honest discussion about this... But you're speculating
on performance issues w/o numbers...

-- 
  John-Mark Gurney				Voice: +1 415 225 5579

     "All that I will do, has been done, All that I have, has not."


More information about the freebsd-arch mailing list