The NetBSD Project

CVS log for src/sys/kern/kern_rndq.c

[BACK] Up to [cvs.netbsd.org] / src / sys / kern

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.2.2.3 / (download) - annotate - [select for diffs], Wed May 23 10:08:11 2012 UTC (2 days, 21 hours ago) by yamt
Branch: yamt-pagecache
Changes since 1.2.2.2: +19 -7 lines
Diff to previous 1.2.2.2 (colored) to branchpoint 1.2 (colored) next main 1.3 (colored)

sync with head.

Revision 1.1.4.3 / (download) - annotate - [select for diffs], Sun Apr 29 23:05:05 2012 UTC (3 weeks, 5 days ago) by mrg
Branch: jmcneill-usbmp
Changes since 1.1.4.2: +37 -7 lines
Diff to previous 1.1.4.2 (colored) to branchpoint 1.1 (colored) next main 1.2 (colored)

sync to latest -current.

Revision 1.1.2.2 / (download) - annotate - [select for diffs], Fri Apr 20 23:35:20 2012 UTC (5 weeks ago) by riz
Branch: netbsd-6
Changes since 1.1.2.1: +19 -7 lines
Diff to previous 1.1.2.1 (colored) to branchpoint 1.1 (colored) next main 1.2 (colored)

Pull up following revision(s) (requested by tls in ticket #190):
	sys/sys/rnd.h: revision 1.31
	sys/sys/rnd.h: revision 1.32
	sys/sys/cprng.h: revision 1.5
	sys/kern/subr_cprng.c: revision 1.8
	share/man/man4/rnd.4: revision 1.19
	sys/kern/kern_rndq.c: revision 1.3
	sys/dev/rndpseudo.c: revision 1.8
	sys/dev/rndpseudo.c: revision 1.9
	sys/kern/kern_rndpool.c: revision 1.2
Address multiple problems with rnd(4)/cprng(9):
1) Add a per-cpu CPRNG to handle short reads from /dev/urandom so that
   programs like perl don't drain the entropy pool dry by repeatedly
   opening, reading 4 bytes, closing.
2) Really fix the locking around reseeds and destroys.
3) Fix the opportunistic-reseed strategy so it actually works, reseeding
   existing RNGs once each (as they are used, so idle RNGs don't get
   reseeded) until the pool is half empty or newly full again.
Fix a bug and a compilation problem.  Bug: spin mutexes don't have owners,
so KASSERT(!mutex_owned()) shouldn't be used to assert that the current
LWP does not have the mutex.  Compilation problem: explicitly include
sys/mutex.h from rnd.h so evbarm builds again.

Revision 1.1.2.1 / (download) - annotate - [select for diffs], Thu Apr 19 19:59:10 2012 UTC (5 weeks, 1 day ago) by riz
Branch: netbsd-6
Changes since 1.1: +25 -7 lines
Diff to previous 1.1 (colored)

Pull up following revision(s) (requested by tls in ticket #185):
	sys/kern/subr_cprng.c: revision 1.6
	sys/kern/subr_cprng.c: revision 1.7
	sys/lib/libkern/arc4random.c: revision 1.32
	sys/kern/kern_rndq.c: revision 1.2
	sys/dev/rndpseudo.c: revision 1.7
	sys/sys/rnd.h: revision 1.30
Add a spin mutex to the rndsink structure; it is used to avoid lock
ordering and sleep-holding-locks problems when rekeying, and thus
to avoid a nasty race between cprng destruction and reseeding.
Fix LOCKDEBUG problems pointed out by drochner@
1) Lock ordering in cprng_strong_destroy had us take a spin mutex then
   an adaptive mutex.  Can't do that.  Reordering this requires changing
   cprng_strong_reseed to tryenter the cprng's own mutex and skip the
   reseed on failure, or we could deadlock.
2) Can't free memory with a valid mutex in it.
reorder initialization to improve error handling in case the system
runs out of file descriptors, avoids LOCKDEBUG panic due to double
mutex initialization

Revision 1.3 / (download) - annotate - [select for diffs], Tue Apr 17 02:50:38 2012 UTC (5 weeks, 4 days ago) by tls
Branch: MAIN
CVS Tags: yamt-pagecache-base5, jmcneill-usbmp-base9, HEAD
Changes since 1.2: +19 -7 lines
Diff to previous 1.2 (colored)

Address multiple problems with rnd(4)/cprng(9):

1) Add a per-cpu CPRNG to handle short reads from /dev/urandom so that
   programs like perl don't drain the entropy pool dry by repeatedly
   opening, reading 4 bytes, closing.

2) Really fix the locking around reseeds and destroys.

3) Fix the opportunistic-reseed strategy so it actually works, reseeding
   existing RNGs once each (as they are used, so idle RNGs don't get
   reseeded) until the pool is half empty or newly full again.

Revision 1.2.2.2 / (download) - annotate - [select for diffs], Tue Apr 17 00:08:25 2012 UTC (5 weeks, 4 days ago) by yamt
Branch: yamt-pagecache
Changes since 1.2.2.1: +1052 -0 lines
Diff to previous 1.2.2.1 (colored) to branchpoint 1.2 (colored)

sync with head

Revision 1.2.2.1, Tue Apr 10 14:02:27 2012 UTC (6 weeks, 3 days ago) by yamt
Branch: yamt-pagecache
Changes since 1.2: +0 -1052 lines
FILE REMOVED

file kern_rndq.c was added on branch yamt-pagecache on 2012-04-17 00:08:25 +0000

Revision 1.2 / (download) - annotate - [select for diffs], Tue Apr 10 14:02:27 2012 UTC (6 weeks, 3 days ago) by tls
Branch: MAIN
CVS Tags: yamt-pagecache-base4
Branch point for: yamt-pagecache
Changes since 1.1: +25 -7 lines
Diff to previous 1.1 (colored)


Add a spin mutex to the rndsink structure; it is used to avoid lock
ordering and sleep-holding-locks problems when rekeying, and thus
to avoid a nasty race between cprng destruction and reseeding.

Revision 1.1.4.2 / (download) - annotate - [select for diffs], Sat Feb 18 07:35:31 2012 UTC (3 months ago) by mrg
Branch: jmcneill-usbmp
Changes since 1.1.4.1: +1034 -0 lines
Diff to previous 1.1.4.1 (colored) to branchpoint 1.1 (colored)

merge to -current.

Revision 1.1.4.1, Thu Feb 2 19:43:07 2012 UTC (3 months, 3 weeks ago) by mrg
Branch: jmcneill-usbmp
Changes since 1.1: +0 -1034 lines
FILE REMOVED

file kern_rndq.c was added on branch jmcneill-usbmp on 2012-02-18 07:35:31 +0000

Revision 1.1 / (download) - annotate - [select for diffs], Thu Feb 2 19:43:07 2012 UTC (3 months, 3 weeks ago) by tls
Branch: MAIN
CVS Tags: netbsd-6-base, jmcneill-usbmp-base8, jmcneill-usbmp-base7, jmcneill-usbmp-base6, jmcneill-usbmp-base5, jmcneill-usbmp-base4, jmcneill-usbmp-base3, jmcneill-usbmp-base2
Branch point for: netbsd-6, jmcneill-usbmp

Entropy-pool implementation move and cleanup.

1) Move core entropy-pool code and source/sink/sample management code
   to sys/kern from sys/dev.

2) Remove use of NRND as test for presence of entropy-pool code throughout
   source tree.

3) Remove use of RND_ENABLED in device drivers as microoptimization to
   avoid expensive operations on disabled entropy sources; make the
   rnd_add calls do this directly so all callers benefit.

4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might
   have lead to slight entropy overestimation for some sources.

5) Add new source types for environmental sensors, power sensors, VM
   system events, and skew between clocks, with a sample implementation
   for each.

ok releng to go in before the branch due to the difficulty of later
pullup (widespread #ifdef removal and moved files).  Tested with release
builds on amd64 and evbarm and live testing on amd64.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>