freebsd-dev/sys
Conrad Meyer 8a0edc914f Add prng(9) API
Add prng(9) as a replacement for random(9) in the kernel.

There are two major differences from random(9) and random(3):

- General prng(9) APIs (prng32(9), etc) do not guarantee an
  implementation or particular sequence; they should not be used for
  repeatable simulations.

- However, specific named API families are also exposed (for now: PCG),
  and those are expected to be repeatable (when so-guaranteed by the named
  algorithm).

Some minor differences from random(3) and earlier random(9):

- PRNG state for the general prng(9) APIs is per-CPU; this eliminates
  contention on PRNG state in SMP workloads.  Each PCPU generator in an
  SMP system produces a unique sequence.

- Better statistical properties than the Park-Miller ("minstd") PRNG
  (longer period, uniform distribution in all bits, passes
  BigCrush/PractRand analysis).

- Faster than Park-Miller ("minstd") PRNG -- no division is required to
  step PCG-family PRNGs.

For now, random(9) becomes a thin shim around prng32().  Eventually I
would like to mechanically switch consumers over to the explicit API.

Reviewed by:	kib, markj (previous version both)
Discussed with:	markm
Differential Revision:	https://reviews.freebsd.org/D25916
2020-08-13 20:48:14 +00:00
..
amd64 o Add machine/iommu.h and include MD iommu headers from it, 2020-08-05 19:11:31 +00:00
arm aw_cir: in the pulse encoding the actual length is one greater than value 2020-08-12 09:57:28 +00:00
arm64 Add support for Cortex-A76/Neoverse-N1 to hwpmc 2020-08-12 10:17:17 +00:00
bsm
cam Fill device serial_num and device_id in NVMe XPT. 2020-08-13 02:32:46 +00:00
cddl Fix linker error in libuutil with recent LLVM 2020-08-07 16:04:21 +00:00
compat linprocfs: Fix some inaccuracies in meminfo. 2020-08-12 16:08:44 +00:00
conf Add prng(9) API 2020-08-13 20:48:14 +00:00
contrib Add prng(9) API 2020-08-13 20:48:14 +00:00
crypto padlock: fix Via Padlock with 192-bit keys 2020-07-20 16:12:14 +00:00
ddb
dev Report cpi->hba_* for nda(4) because why not. 2020-08-12 20:05:43 +00:00
dts
fs Fix a bug introduced by r363001 for the ext_pgs case. 2020-08-12 04:35:49 +00:00
gdb
geom Fix indentation. 2020-07-27 16:31:21 +00:00
gnu Import DTS files for arm, arm64, riscv from Linux 5.8 2020-08-04 19:44:43 +00:00
i386 o Add machine/iommu.h and include MD iommu headers from it, 2020-08-05 19:11:31 +00:00
isa
kern Add prng(9) API 2020-08-13 20:48:14 +00:00
kgssapi
libkern Add prng(9) API 2020-08-13 20:48:14 +00:00
mips Include virtio support in std.MALTA 2020-07-31 11:28:09 +00:00
modules Allow overriding the tool used for stripping binaries 2020-08-11 16:46:27 +00:00
net Move rtzone handling code to net/route_ctl.c 2020-08-13 18:35:29 +00:00
net80211 net80211/ifconfig: print hardware device name for wlan interfaces 2020-08-07 12:24:23 +00:00
netgraph ng_iface(4): Remove unsupported protocols. 2020-07-31 14:08:54 +00:00
netinet TCP Cubic: Have Fast Convergence Heuristic work for ECN, and align concave region 2020-08-13 16:45:55 +00:00
netinet6 Use a static initializer for the multicast free tasks. 2020-08-11 08:31:40 +00:00
netipsec
netpfil ipfw: make the "frag" keyword accept additional options "mf", 2020-08-11 15:46:22 +00:00
netsmb
nfs Transition from rtrequest1_fib() to rib_action(). 2020-07-21 19:56:13 +00:00
nfsclient
nfsserver
nlm
ofed
opencrypto Add support for KTLS RX via software decryption. 2020-07-23 23:48:18 +00:00
powerpc Fix clang 11 inline asm constraint error when building powerpc GENERIC64 2020-08-07 19:32:54 +00:00
riscv Enable interrupts while handling traps 2020-08-13 14:21:05 +00:00
rpc Add an argument to newnfs_connect() that indicates use TLS for the connection. 2020-08-11 00:26:45 +00:00
security vfs: add VOP_STAT 2020-08-07 23:06:40 +00:00
sys Add prng(9) API 2020-08-13 20:48:14 +00:00
teken
tests
tools makesyscalls.lua: improve syscall ordering validation 2020-08-04 21:49:13 +00:00
ufs vfs: clean MNTK_FPLOOKUP if MNT_UNION is set 2020-08-10 11:51:21 +00:00
vm Back out unrelated change 2020-08-12 00:21:30 +00:00
x86 Move dmar_domain_unload_task to busdma_iommu.c. 2020-08-06 12:49:25 +00:00
xdr
xen
Makefile