freebsd-nq/sys/dev
Colin Percival 0811ce5723 random: Ingest extra fast entropy when !seeded
We periodically ingest entropy from pollable entropy sources, but only
8 bytes at a time and only occasionally enough to feed all of Fortuna's
pools once per second.  This can result in Fortuna remaining unseeded
for a nontrivial amount of time when there is no entropy passed in from
the boot loader, even if RDRAND is available to quickly provide a large
amount of entropy.

Detect in random_sources_feed if we are not yet seeded, and increase the
amount of immediate entropy harvesting we perform, in order to "fill"
Fortuna's entropy pools and avoid having
  random: randomdev_wait_until_seeded unblock wait
stall the boot process when entropy is available.

This speeds up the FreeBSD boot in the Firecracker VM by 2.3 seconds.

Approved by:	csprng (delphij)
Sponsored by:	https://www.patreon.com/cperciva
Differential Revision:	https://reviews.freebsd.org/D35802
2022-07-19 23:59:40 -07:00
..
aac kerneldump: remove physical argument from d_dumper 2022-05-13 10:42:48 -03:00
aacraid
acpi_support
acpica ACPI: change arguments to internal acpi_find_dsd() 2022-06-28 12:57:04 +00:00
adb adb: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-10 10:21:38 -07:00
adlink adlink: Remove unused devclass argument to DRIVER_MODULE. 2022-05-10 10:21:38 -07:00
ae
age if_age(4): Fix a typo in a source code comment 2022-06-05 09:14:17 +02:00
agp Adjust agp_find_device() definition in agp.c to avoid clang 15 warning 2022-07-16 16:46:21 +02:00
ahci
aic7xxx ddb: use _FLAGS command macros where appropriate 2022-07-05 11:56:55 -03:00
al_eth al_eth: Fix a typo in a source code comment 2022-06-04 15:33:36 +02:00
alc alc: force maximum payload size to 128 bytes for AR816X/AR817x 2022-06-06 20:52:55 -05:00
ale
alpm
altera altera drivers: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-09 14:26:46 -07:00
amd_ecc_inject
amdgpio
amdpm
amdsbwd amdsbwd(4): Fix a typo in a source code comment 2022-06-04 11:26:44 +02:00
amdsmb
amdsmn
amdtemp
arcmsr
asmc
ata ata(4): Fix a typo in a source code comment 2022-07-03 15:12:26 +02:00
ath
atkbdc atkbd(4): Fix "hancha" and "han/yong" korean keys handling. 2022-07-20 00:36:20 +03:00
axgbe
backlight backlight: Update cached value when getting the brightness 2022-05-25 16:50:25 +02:00
bce
beri beri: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-10 10:21:39 -07:00
bfe
bge bge: tell debugnet there are 2 rx rings, not 1,024 2022-07-18 16:05:18 -05:00
bhnd
bnxt
bwi
bwn
bxe ddb: use _FLAGS command macros where appropriate 2022-07-05 11:56:55 -03:00
cadence cgem: Remove unused devclass argument to DRIVER_MODULE. 2022-05-09 14:26:44 -07:00
cardbus subr_bus: restore bus_null_rescan() 2022-06-23 16:07:00 -03:00
cas
ce ce: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-09 14:26:43 -07:00
cesa cesa: Remove unused devclass argument to DRIVER_MODULE. 2022-05-10 10:21:39 -07:00
cfe
cfi Remove unused cfi_diskclass. 2022-05-10 10:21:39 -07:00
chromebook_platform
ciss
coretemp
cp cp: Remove unused devclass argument to DRIVER_MODULE. 2022-05-09 14:26:43 -07:00
cpuctl
cpufreq
cxgb Remove unused but set variable in cxgb_sge 2022-07-16 21:13:37 +02:00
cxgbe Adjust t4_tracer_mod{load,unload}() definitions to avoid clang 15 warnings 2022-07-19 20:37:02 +02:00
cyapa
dc
dcons
dme dme: Remove unused devclass argument to DRIVER_MODULE. 2022-05-10 10:21:39 -07:00
dpaa dpaa: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-10 10:21:39 -07:00
dpms
drm2 vm_object: Modify various drivers to allocate OBJT_SWAP objects 2022-07-12 09:10:15 -04:00
dwc if_dwc: avoid duplicate packet counts 2022-06-23 15:15:10 -03:00
dwwdt dwwdt: Remove unused devclass argument to DRIVER_MODULE. 2022-05-09 14:26:46 -07:00
e1000 e1000: Increase rx_buffer_size to 32b 2022-05-12 08:43:55 -07:00
efidev
ena ena: Update driver version to v2.6.1 2022-07-06 17:06:21 +02:00
enetc enetc: Fix a typo in a source code comment 2022-07-16 13:38:27 +02:00
et
etherswitch e6000sw: add readphy and writephy wrappers 2022-07-07 18:25:00 +02:00
evdev atkbd(4): Fix "hancha" and "han/yong" korean keys handling. 2022-07-20 00:36:20 +03:00
exca
extres extres drivers: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-09 14:26:44 -07:00
fb Adjust fbd_list() definition to avoid clang 15 warning 2022-07-19 20:37:17 +02:00
fdc
fdt fdt simple drivers: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-09 14:26:44 -07:00
ffec if_ffec: free the dmamem allocation in detach 2022-06-23 15:15:10 -03:00
filemon
firewire
flash spi flash: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-09 12:22:04 -07:00
ftwd
fxp
gem
glxiic glxiic/glxsb: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-09 14:26:43 -07:00
glxsb glxiic/glxsb: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-09 14:26:43 -07:00
goldfish goldfish_rtc: Remove unused devclass argument to DRIVER_MODULE. 2022-05-10 10:21:37 -07:00
gpio
gxemul gxemul: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-10 10:21:39 -07:00
hdmi dwc_hdmi: Remove unused devclass argument to DRIVER_MODULE. 2022-05-10 10:21:39 -07:00
hid hidraw: Return string lengths for certain ioctls 2022-05-18 12:12:19 +02:00
hifn
hpt27xx
hptiop
hptmv hptmv(4): Fix a typo in a source code comment 2022-06-04 13:28:52 +02:00
hptnr
hptrr
hwpmc hwpmc: further fix build (__diagused/debug/missing files entries) 2022-06-27 01:36:52 +00:00
hyperv Use KERNEL_PANICKED() in more places 2022-06-02 10:15:43 -03:00
iavf
ic
ice ice(4): Add RDMA Client Interface 2022-05-23 16:23:49 -07:00
ichiic
ichsmb
ichwd
ida kerneldump: remove physical argument from d_dumper 2022-05-13 10:42:48 -03:00
igc igc: Change default duplex setting 2022-07-01 08:12:08 +02:00
iicbus pca954x: harmonize pca9547 and pca954x and add pca9540 support 2022-07-04 19:12:01 +00:00
imcsmb
intel
intpm
io
ioat
iommu iommu: Shrink the iommu map entry structure 2022-07-15 22:24:52 -05:00
ipmi ipmi: fix a use-after-free bug in error handling 2022-07-08 11:49:54 +08:00
ips kerneldump: remove physical argument from d_dumper 2022-05-13 10:42:48 -03:00
ipw
irdma irdma(4): Fix previous commit that broke build on amd64 2022-05-25 00:05:19 -07:00
isci
iscsi
iser
isl
ismt
isp
ispfw
itwd
iwi
iwm
iwn
ixgbe if_ix: Reset on an ECC error 2022-06-21 20:22:25 -07:00
ixl ixl(4): Fix SR-IOV panics 2022-07-12 18:17:03 -07:00
jedec_dimm
jme jme(4): Fix a typo in a source code comment 2022-07-03 15:13:01 +02:00
kbd
kbdmux
ksyms
kvm_clock
le le(4): Fix a typo in a source code comment 2022-06-04 12:00:44 +02:00
led
lge
liquidio
malo
mana
mbox
md
mdio
mem
mfi kerneldump: remove physical argument from d_dumper 2022-05-13 10:42:48 -03:00
mgb
mge mge: Remove unused devclass argument to DRIVER_MODULE. 2022-05-10 10:21:39 -07:00
mii
mlx mlx(4): Fix a common typo in a source code comment 2022-06-05 09:53:59 +02:00
mlx4 mlx4core: Use-after-free causes a resource leak in flow-steering detach 2022-06-07 16:28:32 +02:00
mlx5 mlx5ib: Fix memory leak in clean_mr() error path 2022-06-13 17:00:16 +02:00
mlxfw
mmc kerneldump: remove physical argument from d_dumper 2022-05-13 10:42:48 -03:00
mmcnull
mpr
mps
mpt mpt(4): Fix two typos in debug statements 2022-06-04 20:41:15 +02:00
mrsas
msk
mthca
mvs
mwl
mxge
my
nctgpio
neta mvneta: Remove unused devclass argument to DRIVER_MODULE. 2022-05-09 14:26:46 -07:00
netmap netmap: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-10 10:21:39 -07:00
nfe
nfsmb
nge
nmdm
ntb ntb: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-09 12:22:03 -07:00
null
nvd kerneldump: remove physical argument from d_dumper 2022-05-13 10:42:48 -03:00
nvdimm nvdimm: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-09 12:22:03 -07:00
nvme nvmw(4): Fix a typo in a source code comment 2022-06-04 11:46:03 +02:00
nvram
nvram2env nvram2env: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-10 10:21:39 -07:00
oce oce: Remove unused devclass argument to DRIVER_MODULE. 2022-05-09 12:22:03 -07:00
ocs_fc
ofw Fix ofw pcib when it rman_init fails 2022-07-04 15:27:00 +01:00
otus otus: Remove unused devclass argument to DRIVER_MODULE. 2022-05-09 12:22:03 -07:00
ow ow: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-09 12:22:03 -07:00
p2sb p2sb: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-09 12:22:03 -07:00
pbio pbio: Remove unused devclass argument to DRIVER_MODULE. 2022-05-09 14:26:44 -07:00
pccard
pccbb
pcf pcf: Remove unused devclass argument to DRIVER_MODULE. 2022-05-09 14:26:43 -07:00
pci ddb: annotate some commands with DB_CMD_MEMSAFE 2022-07-18 22:06:09 +00:00
pms
powermac_nvram powermac_nvram: Remove unused devclass argument to DRIVER_MODULE. 2022-05-10 10:21:38 -07:00
ppbus
ppc
proto proto: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-09 12:22:03 -07:00
psci psci: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-09 14:26:46 -07:00
pst pst: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-09 14:26:43 -07:00
pty
puc
pwm pwm: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-09 12:22:03 -07:00
qat qat(4): Fix a typo in a source code comment 2022-07-16 14:26:24 +02:00
qcom_clk
qcom_dwc3 qcom_*: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-10 10:21:39 -07:00
qcom_gcc qcom_*: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-10 10:21:39 -07:00
qcom_mdio qcom_*: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-10 10:21:39 -07:00
qcom_qup qcom_*: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-10 10:21:39 -07:00
qcom_rnd qcom_*: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-10 10:21:39 -07:00
qcom_tcsr qcom_*: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-10 10:21:39 -07:00
qcom_tlmm qcom_*: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-10 10:21:39 -07:00
qlnx qlnxe(4): Fix a typo in a source code comment 2022-06-05 09:15:33 +02:00
qlxgb qlnx/qlxgb/qlxgbe/qlxge: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-09 12:22:03 -07:00
qlxgbe qlxgbe(4): Fix a common typo in a source code comment 2022-06-05 09:56:29 +02:00
qlxge qlnx/qlxgb/qlxgbe/qlxge: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-09 12:22:03 -07:00
quicc quicc: Remove unused devclass argument to DRIVER_MODULE. 2022-05-10 10:21:39 -07:00
ral
random random: Ingest extra fast entropy when !seeded 2022-07-19 23:59:40 -07:00
rccgpio
re
rl
rndtest
rt rt: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-10 10:21:39 -07:00
rtsx
rtwn rtwn: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-09 12:22:04 -07:00
safe safe: Remove unused devclass argument to DRIVER_MODULE. 2022-05-09 12:22:04 -07:00
safexcel safexcel: Remove unused devclass argument to DRIVER_MODULE. 2022-05-09 12:22:04 -07:00
sbni sbni: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-09 14:26:43 -07:00
scc scc: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-10 10:21:38 -07:00
sdhci
sdio Remove unused sdiob_devclass. 2022-05-10 10:21:39 -07:00
sec sec: Remove unused devclass argument to DRIVER_MODULE. 2022-05-10 10:21:39 -07:00
sfxge sfxge: Remove unused devclass argument to DRIVER_MODULE. 2022-05-09 12:22:04 -07:00
sge
siis
sis if_sis(4): Fix a typo in a source code comment 2022-06-04 16:56:18 +02:00
sk
smartpqi smartpqi: Allocate DMA memory NOWAIT 2022-06-27 11:06:31 -06:00
smbios
smbus
smc smc: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-09 14:26:46 -07:00
snp
sound Retire snd_sbc ISA sound card driver 2022-06-21 14:50:04 -04:00
speaker
spibus spigen: Remove unused devclass argument to DRIVER_MODULE. 2022-05-09 12:22:04 -07:00
ste
stge
sume sume: Remove unused devclass argument to DRIVER_MODULE. 2022-05-09 12:22:04 -07:00
superio superio: Remove unused devclass argument to DRIVER_MODULE. 2022-05-09 12:22:04 -07:00
sym
syscons
tcp_log
tdfx
ti
tpm tpm: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-09 12:22:04 -07:00
tsec tsec: Remove unused devclass argument to DRIVER_MODULE. 2022-05-10 10:21:39 -07:00
twe twe(4): Fix a common typo in a source code comment 2022-06-05 09:55:25 +02:00
tws
uart uart: Don't check SPCR tables if !late_console 2022-07-13 23:17:44 -07:00
usb dwc3: add ACPI attachment 2022-07-06 11:26:34 +00:00
veriexec
vge
viapm
viawd
videomode
virtio kerneldump: remove physical argument from d_dumper 2022-05-13 10:42:48 -03:00
vkbd
vmd
vmgenc
vmware
vnic vnic: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-09 14:26:46 -07:00
vr
vt console: add U+276E and U+276F glyphs 2022-07-19 11:52:13 -04:00
vte
watchdog
wbwd
wpi
wtap wtap(4): Rename interface name 2022-07-09 01:29:15 +08:00
xdma xdma: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-10 10:21:37 -07:00
xen xen/blkback: do not use x86 CPUID in generic code 2022-06-28 09:51:57 +02:00
xilinx Add fdt to name of a fdt specific function 2022-05-23 15:24:35 +01:00
xl
xz
zlib