projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
implement 'unit_base' option to select between KB and Kbit et. al.
[fio.git]
/
engines
/
posixaio.c
diff --git
a/engines/posixaio.c
b/engines/posixaio.c
index 0872f9aebbe9ab59bd9d0e21b0ac089b0b1da8e4..1858e5202457eecd4c707cff7fd78f35bf1dfc34 100644
(file)
--- a/
engines/posixaio.c
+++ b/
engines/posixaio.c
@@
-19,13
+19,25
@@
struct posixaio_data {
static int fill_timespec(struct timespec *ts)
{
static int fill_timespec(struct timespec *ts)
{
-#ifdef _POSIX_TIMERS
- if (!clock_gettime(CLOCK_MONOTONIC, ts))
+#ifdef CONFIG_CLOCK_GETTIME
+#ifdef CONFIG_CLOCK_MONOTONIC
+ clockid_t clk = CLOCK_MONOTONIC;
+#else
+ clockid_t clk = CLOCK_REALTIME;
+#endif
+ if (!clock_gettime(clk, ts))
return 0;
perror("clock_gettime");
return 0;
perror("clock_gettime");
-#endif
return 1;
return 1;
+#else
+ struct timeval tv;
+
+ gettimeofday(&tv, NULL);
+ ts->tv_sec = tv.tv_sec;
+ ts->tv_nsec = tv.tv_usec * 1000;
+ return 0;
+#endif
}
static unsigned long long ts_utime_since_now(struct timespec *t)
}
static unsigned long long ts_utime_since_now(struct timespec *t)
@@
-86,15
+98,18
@@
static int fio_posixaio_getevents(struct thread_data *td, unsigned int min,
struct flist_head *entry;
struct timespec start;
int have_timeout = 0;
struct flist_head *entry;
struct timespec start;
int have_timeout = 0;
- int suspend_entries
= 0
;
+ int suspend_entries;
unsigned int r;
if (t && !fill_timespec(&start))
have_timeout = 1;
unsigned int r;
if (t && !fill_timespec(&start))
have_timeout = 1;
+ else
+ memset(&start, 0, sizeof(start));
r = 0;
r = 0;
- memset(suspend_list, 0, sizeof(*suspend_list));
restart:
restart:
+ memset(suspend_list, 0, sizeof(*suspend_list));
+ suspend_entries = 0;
flist_for_each(entry, &td->io_u_busylist) {
struct io_u *io_u = flist_entry(entry, struct io_u, list);
int err;
flist_for_each(entry, &td->io_u_busylist) {
struct io_u *io_u = flist_entry(entry, struct io_u, list);
int err;