projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use CLOCK_MONOTONIC if we can
[fio.git]
/
gettime.c
diff --git
a/gettime.c
b/gettime.c
index 0ad8d9244f3a18217631dae029137393207e28db..15356b1b9227c2b92f7676aae124664647f0e5d1 100644
(file)
--- a/
gettime.c
+++ b/
gettime.c
@@
-5,6
+5,7
@@
#include <unistd.h>
#include <math.h>
#include <sys/time.h>
#include <unistd.h>
#include <math.h>
#include <sys/time.h>
+#include <time.h>
#include "fio.h"
#include "smalloc.h"
#include "fio.h"
#include "smalloc.h"
@@
-139,7
+140,11
@@
void fio_gettime(struct timeval *tp, void fio_unused *caller)
case CS_CGETTIME: {
struct timespec ts;
case CS_CGETTIME: {
struct timespec ts;
+#ifdef FIO_HAVE_CLOCK_MONOTONIC
+ if (clock_gettime(CLOCK_MONOTONIC, &ts) < 0) {
+#else
if (clock_gettime(CLOCK_REALTIME, &ts) < 0) {
if (clock_gettime(CLOCK_REALTIME, &ts) < 0) {
+#endif
log_err("fio: clock_gettime fails\n");
assert(0);
}
log_err("fio: clock_gettime fails\n");
assert(0);
}
@@
-230,7
+235,7
@@
static void calibrate_cpu_clock(void)
for (i = 0; i < 10; i++) {
double this = cycles[i];
for (i = 0; i < 10; i++) {
double this = cycles[i];
- if ((
max(this, mean) -
min(this, mean)) > S)
+ if ((
fmax(this, mean) - f
min(this, mean)) > S)
continue;
samples++;
avg += this;
continue;
samples++;
avg += this;