Revision tags: release/14.0.0, release/13.2.0, release/12.4.0, release/13.1.0, release/12.3.0, release/13.0.0, release/12.2.0 |
|
#
e2515283 |
| 27-Aug-2020 |
Glen Barber <gjb@FreeBSD.org> |
MFH
Sponsored by: Rubicon Communications, LLC (netgate.com)
|
#
518eb03e |
| 16-Aug-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r364251 through r364263.
|
#
43eccfe9 |
| 15-Aug-2020 |
Conrad Meyer <cem@FreeBSD.org> |
pcg-c: Add 'static' to inline function definitions
Make the inlines static to avoid kernel build failure with Clang 11 on i386. (The issue was not observed with Clang 10, currently in tree; reproduc
pcg-c: Add 'static' to inline function definitions
Make the inlines static to avoid kernel build failure with Clang 11 on i386. (The issue was not observed with Clang 10, currently in tree; reproduction depends on compiler inlining choices.)
The compiler may choose not to inline 'bare' C inlines, and in that case expects a symbol of the same name will be available. It does not automatically define that symbol at use, because of traditional C linking semantics. (In contrast, C++ does define it, and then deduplicates redundant definitions at link). As we do not instantiate the C99 inline ('extern inline ...;'), the linker errors with "undefined symbol."
Reported by: dim Tested by: dim Fixes: r364219
show more ...
|
#
de6fc2e3 |
| 15-Aug-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r364082 through r364250.
|
#
8a0edc91 |
| 13-Aug-2020 |
Conrad Meyer <cem@FreeBSD.org> |
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
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
show more ...
|
#
c7aa572c |
| 31-Jul-2020 |
Glen Barber <gjb@FreeBSD.org> |
MFH
Sponsored by: Rubicon Communications, LLC (netgate.com)
|
#
17996960 |
| 31-Jul-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r363583 through r363738.
|
#
9119bafb |
| 31-Jul-2020 |
Conrad Meyer <cem@FreeBSD.org> |
Import PCG-C into sys/contrib
The intended (future) use is to provide fast pseudo-random numbers in non- cryptographic applications.
|