summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorBob Pearson <rpearson@systemfabricworks.com>2012-03-23 15:02:22 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2012-03-23 16:58:37 -0700
commit3863ef31dcf04f977a94402348fec06179db58e0 (patch)
tree98c50d517472247290b6ccad62b7575d688e0dd6 /crypto
parentfbedceb10066430b925cf43fbf926e8abb9e2359 (diff)
downloadop-kernel-dev-3863ef31dcf04f977a94402348fec06179db58e0.zip
op-kernel-dev-3863ef31dcf04f977a94402348fec06179db58e0.tar.gz
crc32: simplify unit test code
Replace the unit test provided in crc32.c, which doesn't have a makefile and doesn't compile with current headers, with a simpler self test routine that also gives a measure of performance and runs at module init time. The self test option can be enabled through a configuration option CONFIG_CRC32_SELFTEST. The test stresses the pre and post loops and is thus not very realistic since actual uses will likely have addresses and lengths that are at least 4 byte aligned. However, the main loop is long enough so that the performance is dominated by that loop. The expected values for crc32_le and crc32_be were generated with the original version of crc32.c using CRC_BITS_LE = 8 and CRC_BITS_BE = 8. These values were then used to check all the values of the BITS parameters in both the original and new versions. The performance results show some variability from run to run in spite of attempts to both warm the cache and reduce the amount of OS noise by limiting interrutps during the test. To get comparable results and to analyse options wrt performance the best time reported over a small sample of runs has been taken. [djwong@us.ibm.com: Minor changelog tweaks] Signed-off-by: Bob Pearson <rpearson@systemfabricworks.com> Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'crypto')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud