Currently, for RNG_TYPE_RND rndsources we apply elaborate uniformity tests (rngtest) _and_ simple repeated-output tests on samples gathered serially in global buffers of 512 bytes of output. In what cases should we gather output of an rndsource into a global buffer and apply either elaborate uniformity tests or simple repeated-output tests? - Not a hardware RNG. Not uniformly distributed. => Example: network packet timings. => Elaborate uniformity tests don't make sense and will fail. => Small repeated-output tests may raise too many false alarms. => Serializing output into a global buffer is needlessly expensive. - Hardware RNG is per-CPU, output is computed by cryptography. => Example: Intel RDRAND/RDSEED. => Elaborate uniformity tests should pass. => Small repeated-output tests will have adequate statistical power to detect plausible failure modes. => Unclear whether serializing output for tests into a global buffer is helpful or counterproductive. Current RDRAND/RDSEED seems to be per-package, but who knows, maybe per-core might happen. - Hardware RNG is per-CPU, output is uniform physical observations. => Example: ??? => Elaborate uniformity tests should pass. => Small repeated-output tests might have adequate statistical power to detect plausible failure modes, but without knowledge of the device, hard to say. => Unclear whether serializing output for tests into a global buffer is helpful or counterproductive. - Hardware RNG is per-CPU, output is nonuniform physical observations. => Example: ??? => Elaborate uniformity tests will fail, but without knowledge of the device or its failure modes, hard to say. => Moderate-size repeated-output tests might have adequate statistical power to detect plausible failure modes, but without knowledge of the device, hard to say. => Unclear whether serializing output for tests into a global buffer is helpful or counterproductive. - Hardware RNG is global, output is computed by cryptography. => Example: maybe amlogic meson rng, rpi rng, ti/omap rng, ... => Elaborate uniformity tests should pass. => Small repeated-output tests will have adequate statistical power to detect plausible failure modes. => Serializing output into a global buffer is reasonable. - Hardware RNG is global, output is uniform noise. => Example: VIA C3 RNG, maybe amlogic meson rng, rpi rng, ti/omap rng, ... => Elaborate uniformity tests should pass. => Small repeated-output tests _may_ have adequate statistical power to detect plausible failure modes, but depends on the device. => Serializing output into a global buffer is reasonable. - Hardware RNG is global, output is nonuniform noise. => Example: Geiger counter, maybe allwinner sun8i rng. => Elaborate uniformity tests will fail. => Small repeated-output tests _may_ have adequate statistical power to detect plausible failure modes, but depends on the device. => Serializing output into a global buffer is reasonable.