cpu clock: round up when dividing by samples
[fio.git] / gettime.c
index 549c35e9c0dc34826a69108e202f169ddffead05..1ba18e99877f3fc6cc5f07e8bd2185f8fadd93e0 100644 (file)
--- a/gettime.c
+++ b/gettime.c
@@ -207,7 +207,7 @@ static unsigned long get_cycles_per_usec(void)
                }
        } while (1);
 
-       return (c_e - c_s) >> 7;
+       return (c_e - c_s + 127) >> 7;
 }
 
 #define NR_TIME_ITERS  50
@@ -242,12 +242,13 @@ static void calibrate_cpu_clock(void)
        }
 
        S /= (double) NR_TIME_ITERS;
-       mean /= (double) NR_TIME_ITERS;
+       mean /= 10.0;
 
        for (i = 0; i < NR_TIME_ITERS; i++)
                dprint(FD_TIME, "cycles[%d]=%lu\n", i, cycles[i] / 10);
 
-       avg /= (samples * 10);
+       avg /= samples;
+       avg = (avg + 9) / 10;
        dprint(FD_TIME, "avg: %lu\n", avg);
        dprint(FD_TIME, "mean=%f, S=%f\n", mean, S);