Module Name:    src
Committed By:   riastradh
Date:           Wed Feb 17 00:57:36 UTC 2016

Modified Files:
        src/sys/kern: kern_rndq.c

Log Message:
Omit call to rnd_getmore from rnd_process_events.

There are three cases to consider here:

1. You have on-demand synchronous rndsources, e.g. RDRAND (and you're
willing to use it).  In that case, you'll just use those whenever you
need to extract entropy.  There's no benefit to requesting more from
them when we're entering data into the pool.

2. You have on-demand asynchronous rndsources.  These should continue
trying to feed data to the entropy pool as long as it needs more, so
there's no benefit to requesting more from them when we're entering
data into the pool.

3. You don't have any on-demand rndsources.  Then rnd_getmore does
nothing, so there's no benefit to calling it.

ok tls


To generate a diff of this commit:
cvs rdiff -u -r1.76 -r1.77 src/sys/kern/kern_rndq.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/kern/kern_rndq.c
diff -u src/sys/kern/kern_rndq.c:1.76 src/sys/kern/kern_rndq.c:1.77
--- src/sys/kern/kern_rndq.c:1.76	Wed Feb 17 00:43:42 2016
+++ src/sys/kern/kern_rndq.c	Wed Feb 17 00:57:36 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_rndq.c,v 1.76 2016/02/17 00:43:42 riastradh Exp $	*/
+/*	$NetBSD: kern_rndq.c,v 1.77 2016/02/17 00:57:36 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 1997-2013 The NetBSD Foundation, Inc.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_rndq.c,v 1.76 2016/02/17 00:43:42 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_rndq.c,v 1.77 2016/02/17 00:57:36 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/atomic.h>
@@ -1127,15 +1127,10 @@ skip:		SIMPLEQ_INSERT_TAIL(&df_samples, 
 
 	/*
 	 * If we filled the pool past the threshold, wake anyone
-	 * waiting for entropy.  Otherwise, ask all the entropy sources
-	 * for more.
+	 * waiting for entropy.
 	 */
 	if (pool_entropy > RND_ENTROPY_THRESHOLD * 8) {
 		wake++;
-	} else {
-		rnd_getmore(howmany((RND_POOLBITS - pool_entropy), NBBY));
-		rnd_printf_verbose("rnd: empty, asking for %d bytes\n",
-		    (int)(howmany((RND_POOLBITS - pool_entropy), NBBY)));
 	}
 
 	/* Now we hold no locks: clean up. */

Reply via email to