X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=crc%2Ftest.c;h=3ce717a0d7751cde0879a7507ac0d75e05e3c464;hb=ff8039b745d59ede0ce9245ed24da14ecf2d3f38;hp=2f6d9ee7f430c1a05a5d00c328b8a35e33e6fc2d;hpb=782744ef60b7ed47a529d30b9f8e0c528c436fdb;p=fio.git diff --git a/crc/test.c b/crc/test.c index 2f6d9ee7..3ce717a0 100644 --- a/crc/test.c +++ b/crc/test.c @@ -4,7 +4,7 @@ #include "../fio.h" #include "../gettime.h" -#include "../time.h" +#include "../fio_time.h" #include "../verify.h" #include "../crc/md5.h" @@ -16,6 +16,9 @@ #include "../crc/sha1.h" #include "../crc/sha256.h" #include "../crc/sha512.h" +#include "../crc/xxhash.h" + +#include "test.h" #define CHUNK 131072U #define NR_CHUNKS 2048U @@ -36,6 +39,7 @@ enum { T_SHA1 = 1U << 6, T_SHA256 = 1U << 7, T_SHA512 = 1U << 8, + T_XXHASH = 1U << 9, }; static void randomize_buf(void *buf, unsigned int size, int seed) @@ -233,6 +237,29 @@ static uint64_t t_sha512(void) return ret; } +static uint64_t t_xxhash(void) +{ + void *state; + struct timeval s; + uint64_t ret; + void *buf; + int i; + + state = XXH32_init(0x8989); + + buf = malloc(CHUNK); + randomize_buf(buf, CHUNK, 0x8989); + + fio_gettime(&s, NULL); + for (i = 0; i < NR_CHUNKS; i++) + XXH32_update(state, buf, CHUNK); + + XXH32_digest(state); + ret = utime_since_now(&s); + free(buf); + return ret; +} + static struct test_type t[] = { { .name = "md5", @@ -279,6 +306,11 @@ static struct test_type t[] = { .mask = T_SHA512, .fn = t_sha512, }, + { + .name = "xxhash", + .mask = T_XXHASH, + .fn = t_xxhash, + }, { .name = NULL, }, @@ -341,7 +373,7 @@ int fio_crctest(const char *type) usec = t[i].fn(); mb_sec = (double) mb / (double) usec; mb_sec /= (1.024 * 1.024); - printf("%s:\t%.2f MB/sec\n", t[i].name, mb_sec); + printf("%s:\t%8.2f MB/sec\n", t[i].name, mb_sec); } return 0;