X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=gettime.c;h=3dcaaf680803fdcdb798de6009745f7821118d39;hp=6a50ec548d0091d0f489fb45c6310254539ed7f2;hb=403bb450a8b48885b05d235ef6bf613561c94bbf;hpb=ca5cc357c4db711e316c182158736813a6836b81 diff --git a/gettime.c b/gettime.c index 6a50ec54..3dcaaf68 100644 --- a/gettime.c +++ b/gettime.c @@ -28,7 +28,7 @@ static unsigned int max_cycles_shift; static unsigned int cycles_wrap; #endif #endif -int tsc_reliable = 0; +bool tsc_reliable = false; struct tv_valid { int warned; @@ -311,9 +311,10 @@ static int calibrate_cpu_clock(void) (unsigned long long) maxc, mean, S); max_ticks = MAX_CLOCK_SEC * cycles_per_msec * 1000ULL; - max_mult = ULLONG_MAX / max_ticks; - dprint(FD_TIME, "\n\nmax_ticks=%llu, __builtin_clzll=%d, max_mult=%llu\n", - max_ticks, __builtin_clzll(max_ticks), max_mult); + max_mult = ULLONG_MAX / max_ticks; + dprint(FD_TIME, "\n\nmax_ticks=%llu, __builtin_clzll=%d, " + "max_mult=%llu\n", max_ticks, + __builtin_clzll(max_ticks), max_mult); /* * Find the largest shift count that will produce @@ -326,30 +327,41 @@ static int calibrate_cpu_clock(void) dprint(FD_TIME, "tmp=%llu, sft=%u\n", tmp, sft); } - clock_shift = sft; - clock_mult = (1ULL << sft) * 1000000 / cycles_per_msec; - dprint(FD_TIME, "clock_shift=%u, clock_mult=%llu\n", clock_shift, clock_mult); + clock_shift = sft; + clock_mult = (1ULL << sft) * 1000000 / cycles_per_msec; + dprint(FD_TIME, "clock_shift=%u, clock_mult=%llu\n", clock_shift, + clock_mult); - // Find the greatest power of 2 clock ticks that is less than the ticks in MAX_CLOCK_SEC_2STAGE + /* + * Find the greatest power of 2 clock ticks that is less than the + * ticks in MAX_CLOCK_SEC_2STAGE + */ max_cycles_shift = max_cycles_mask = 0; tmp = MAX_CLOCK_SEC * 1000ULL * cycles_per_msec; - dprint(FD_TIME, "tmp=%llu, max_cycles_shift=%u\n", tmp, max_cycles_shift); + dprint(FD_TIME, "tmp=%llu, max_cycles_shift=%u\n", tmp, + max_cycles_shift); while (tmp > 1) { tmp >>= 1; max_cycles_shift++; dprint(FD_TIME, "tmp=%llu, max_cycles_shift=%u\n", tmp, max_cycles_shift); } - // if use use (1ULL << max_cycles_shift) * 1000 / cycles_per_msec here we will - // have a discontinuity every (1ULL << max_cycles_shift) cycles - nsecs_for_max_cycles = ((1ULL << max_cycles_shift) * clock_mult) >> clock_shift; + /* + * if use use (1ULL << max_cycles_shift) * 1000 / cycles_per_msec + * here we will have a discontinuity every + * (1ULL << max_cycles_shift) cycles + */ + nsecs_for_max_cycles = ((1ULL << max_cycles_shift) * clock_mult) + >> clock_shift; - // Use a bitmask to calculate ticks % (1ULL << max_cycles_shift) + /* Use a bitmask to calculate ticks % (1ULL << max_cycles_shift) */ for (tmp = 0; tmp < max_cycles_shift; tmp++) max_cycles_mask |= 1ULL << tmp; - dprint(FD_TIME, "max_cycles_shift=%u, 2^max_cycles_shift=%llu, nsecs_for_max_cycles=%llu, max_cycles_mask=%016llx\n", - max_cycles_shift, (1ULL << max_cycles_shift), - nsecs_for_max_cycles, max_cycles_mask); + dprint(FD_TIME, "max_cycles_shift=%u, 2^max_cycles_shift=%llu, " + "nsecs_for_max_cycles=%llu, " + "max_cycles_mask=%016llx\n", + max_cycles_shift, (1ULL << max_cycles_shift), + nsecs_for_max_cycles, max_cycles_mask); cycles_start = get_cpu_clock(); dprint(FD_TIME, "cycles_start=%llu\n", cycles_start); @@ -401,7 +413,7 @@ void fio_clock_init(void) fio_clock_source_inited = fio_clock_source; if (calibrate_cpu_clock()) - tsc_reliable = 0; + tsc_reliable = false; /* * If the arch sets tsc_reliable != 0, then it must be good enough @@ -413,6 +425,7 @@ void fio_clock_init(void) fio_clock_source = CS_CPUCLOCK; } else if (fio_clock_source == CS_CPUCLOCK) log_info("fio: clocksource=cpu may not be reliable\n"); + dprint(FD_TIME, "gettime: clocksource=%d\n", (int) fio_clock_source); } uint64_t ntime_since(const struct timespec *s, const struct timespec *e) @@ -530,7 +543,7 @@ uint64_t time_since_now(const struct timespec *s) defined(CONFIG_SFAA) #define CLOCK_ENTRIES_DEBUG 100000 -#define CLOCK_ENTRIES_TEST 10000 +#define CLOCK_ENTRIES_TEST 1000 struct clock_entry { uint32_t seq;