lib: Add a simple prime number generator

Prime numbers are interesting for testing components that use multiplies
and divides, such as testing DRM's struct drm_mm alignment computations.

v2: Move to lib/, add selftest
v3: Fix initial constants (exclude 0/1 from being primes)
v4: More RCU markup to keep 0day/sparse happy
v5: Fix RCU unwind on module exit, add to kselftests
v6: Tidy computation of bitmap size
v7: for_each_prime_number_from()
v8: Compose small-primes using BIT() for easier verification
v9: Move rcu dance entirely into callers.
v10: Improve quote for Betrand's Postulate (aka Chebyshev's theorem)

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Lukas Wunner <lukas@wunner.de>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20161222144514.3911-1-chris@chris-wilson.co.uk
This commit is contained in:
Chris Wilson
2016-12-22 14:45:14 +00:00
committed by Daniel Vetter
parent b3ee963fe4
commit cf4a7207b1
5 changed files with 375 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
#!/bin/sh
# Checks fast/slow prime_number generation for inconsistencies
if ! /sbin/modprobe -q -r prime_numbers; then
echo "prime_numbers: [SKIP]"
exit 77
fi
if /sbin/modprobe -q prime_numbers selftest=65536; then
/sbin/modprobe -q -r prime_numbers
echo "prime_numbers: ok"
else
echo "prime_numbers: [FAIL]"
exit 1
fi