diff options
author | Conrad Meyer <cem@FreeBSD.org> | 2019-12-26 19:32:11 +0000 |
---|---|---|
committer | Conrad Meyer <cem@FreeBSD.org> | 2019-12-26 19:32:11 +0000 |
commit | 3ee1d5bb9dc2db929b19ca59421d197153dbdc08 (patch) | |
tree | 77b0983d76aeae4b202ee38a76066a33518433d2 /UPDATING | |
parent | af00898b5d7bac6734c407c1d2f4362a08fe4532 (diff) | |
download | src-test-3ee1d5bb9dc2db929b19ca59421d197153dbdc08.tar.gz src-test-3ee1d5bb9dc2db929b19ca59421d197153dbdc08.zip |
random(4): Simplify RANDOM_LOADABLE
Simplify RANDOM_LOADABLE by removing the ability to unload a LOADABLE
random(4) implementation. This allows one-time random module selection
at boot, by loader(8). Swapping modules on the fly doesn't seem
especially useful.
This removes the need to hold a lock over the sleepable module calls
read_random and read_random_uio.
init/deinit have been pulled out of random_algorithm entirely. Algorithms
can run their own sysinits to initialize; deinit is removed entirely, as
algorithms can not be unloaded. Algorithms should initialize at
SI_SUB_RANDOM:SI_ORDER_SECOND. In LOADABLE systems, algorithms install
a pointer to their local random_algorithm context in p_random_alg_context at
that time.
Go ahead and const'ify random_algorithm objects; there is no need to mutate
them at runtime.
LOADABLE kernel NULL checks are removed from random_harvestq by ordering
random_harvestq initialization at SI_SUB_RANDOM:SI_ORDER_THIRD, after
algorithm init. Prior to random_harvestq init, hc_harvest_mask is zero and
no events are forwarded to algorithms; after random_harvestq init, the
relevant pointers will already have been installed.
Remove the bulk of random_infra shim wrappers and instead expose the bare
function pointers in sys/random.h. In LOADABLE systems, read_random(9) et
al are just thin shim macros around invoking the associated function
pointer. We do not provide a registration system but instead expect
LOADABLE modules to register themselves at SI_SUB_RANDOM:SI_ORDER_SECOND.
An example is provided in randomdev.c, as used in the random_fortuna.ko
module.
Approved by: csprng(markm)
Discussed with: gordon
Differential Revision: https://reviews.freebsd.org/D22512
Notes
Notes:
svn path=/head/; revision=356096
Diffstat (limited to 'UPDATING')
-rw-r--r-- | UPDATING | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/UPDATING b/UPDATING index becf733734869..12adfb6c0a59c 100644 --- a/UPDATING +++ b/UPDATING @@ -26,6 +26,9 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW: disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20191226: + Kernel-loadable random(4) modules are no longer unloadable. + 20191222: Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have been upgraded to 9.0.1. Please see the 20141231 entry below for |