X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=t%2Flfsr-test.c;h=7016f2688f6bfc0dc5f50811143722a1820d06ac;hb=3cdc4fb008457c16edbfd8101ba57d45e53a5d14;hp=d371087cf42a85b3c8ded574fb2fc88bcfd5cddf;hpb=d7213923067aa49922962a469a691c3ec951064d;p=fio.git diff --git a/t/lfsr-test.c b/t/lfsr-test.c index d371087c..7016f268 100644 --- a/t/lfsr-test.c +++ b/t/lfsr-test.c @@ -8,6 +8,8 @@ #include #include "../lib/lfsr.h" +#include "../gettime.h" +#include "../fio_time.h" void usage() { @@ -25,7 +27,7 @@ void usage() int main(int argc, char *argv[]) { int r; - struct timespec start, end; + struct timeval start, end; struct fio_lfsr *fl; int verify = 0; unsigned int spin = 0; @@ -36,6 +38,8 @@ int main(int argc, char *argv[]) void *v = NULL, *v_start; double total, mean; + arch_init(argv); + /* Read arguments */ switch (argc) { case 5: if (strncmp(argv[4], "verify", 7) == 0) @@ -65,18 +69,18 @@ int main(int argc, char *argv[]) printf("LFSR specs\n"); printf("==========================\n"); printf("Size is %u\n", 64 - __builtin_clzl(fl->cached_bit)); - printf("Max val is %lu\n", fl->max_val); - printf("XOR-mask is 0x%lX\n", fl->xormask); - printf("Seed is %lu\n", fl->last_val); + printf("Max val is %lu\n", (unsigned long) fl->max_val); + printf("XOR-mask is 0x%lX\n", (unsigned long) fl->xormask); + printf("Seed is %lu\n", (unsigned long) fl->last_val); printf("Spin is %u\n", fl->spin); - printf("Cycle length is %lu\n", fl->cycle_length); + printf("Cycle length is %lu\n", (unsigned long) fl->cycle_length); /* Create verification table */ if (verify) { v_size = numbers * sizeof(uint8_t); v = malloc(v_size); memset(v, 0, v_size); - printf("\nVerification table is %lf KBs\n", (double)(v_size) / 1024); + printf("\nVerification table is %lf KiB\n", (double)(v_size) / 1024); } v_start = v; @@ -86,12 +90,12 @@ int main(int argc, char *argv[]) * negligible overhead. */ fprintf(stderr, "\nTest initiated... "); - clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &start); - while (!lfsr_next(fl, &i, fl->max_val)) { + fio_gettime(&start, NULL); + while (!lfsr_next(fl, &i)) { if (verify) *(uint8_t *)(v + i) += 1; } - clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &end); + fio_gettime(&end, NULL); fprintf(stderr, "finished.\n"); @@ -102,7 +106,8 @@ int main(int argc, char *argv[]) for (i = 0; i < numbers; i++) { if (*(uint8_t *)(v + i) != 1) { fprintf(stderr, "failed (%lu = %d).\n", - i, *(uint8_t *)(v + i)); + (unsigned long) i, + *(uint8_t *)(v + i)); r = 1; break; } @@ -112,16 +117,15 @@ int main(int argc, char *argv[]) } /* Calculate elapsed time and mean time per number */ - total = (end.tv_sec - start.tv_sec) * pow(10,9) + - end.tv_nsec - start.tv_nsec; + total = utime_since(&start, &end); mean = total / fl->num_vals; printf("\nTime results "); if (verify) printf("(slower due to verification)"); printf("\n==============================\n"); - printf("Elapsed: %lf s\n", total / pow(10,9)); - printf("Mean: %lf ns\n", mean); + printf("Elapsed: %lf s\n", total / pow(10,6)); + printf("Mean: %lf us\n", mean); free(v_start); free(fl);