projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'appveyor-artifacts' of https://github.com/vincentkfu/fio
[fio.git]
/
io_u.c
diff --git
a/io_u.c
b/io_u.c
index 94899552c5b2daa1deeb956c18aa31e2c8a5068d..5d62a76cb5a72c81ffd0cfee35ace6bf3ee162e6 100644
(file)
--- a/
io_u.c
+++ b/
io_u.c
@@
-606,7
+606,7
@@
static inline enum fio_ddir get_rand_ddir(struct thread_data *td)
int io_u_quiesce(struct thread_data *td)
{
int io_u_quiesce(struct thread_data *td)
{
- int ret = 0, completed = 0;
+ int ret = 0, completed = 0
, err = 0
;
/*
* We are going to sleep, ensure that we flush anything pending as
/*
* We are going to sleep, ensure that we flush anything pending as
@@
-625,7
+625,7
@@
int io_u_quiesce(struct thread_data *td)
if (ret > 0)
completed += ret;
else if (ret < 0)
if (ret > 0)
completed += ret;
else if (ret < 0)
-
break
;
+
err = ret
;
}
if (td->flags & TD_F_REGROW_LOGS)
}
if (td->flags & TD_F_REGROW_LOGS)
@@
-634,7
+634,7
@@
int io_u_quiesce(struct thread_data *td)
if (completed)
return completed;
if (completed)
return completed;
- return
ret
;
+ return
err
;
}
static enum fio_ddir rate_ddir(struct thread_data *td, enum fio_ddir ddir)
}
static enum fio_ddir rate_ddir(struct thread_data *td, enum fio_ddir ddir)
@@
-644,7
+644,7
@@
static enum fio_ddir rate_ddir(struct thread_data *td, enum fio_ddir ddir)
uint64_t now;
assert(ddir_rw(ddir));
uint64_t now;
assert(ddir_rw(ddir));
- now = utime_since_now(&td->
start
);
+ now = utime_since_now(&td->
epoch
);
/*
* if rate_next_io_time is in the past, need to catch up to rate
/*
* if rate_next_io_time is in the past, need to catch up to rate
@@
-850,7
+850,7
@@
static void setup_strided_zone_mode(struct thread_data *td, struct io_u *io_u)
/*
* See if it's time to switch to a new zone
*/
/*
* See if it's time to switch to a new zone
*/
- if (td->zone_bytes >= td->o.zone_size
&& td->o.zone_skip
) {
+ if (td->zone_bytes >= td->o.zone_size) {
td->zone_bytes = 0;
f->file_offset += td->o.zone_range + td->o.zone_skip;
td->zone_bytes = 0;
f->file_offset += td->o.zone_range + td->o.zone_skip;
@@
-1541,7
+1541,7
@@
again:
assert(io_u->flags & IO_U_F_FREE);
io_u_clear(td, io_u, IO_U_F_FREE | IO_U_F_NO_FILE_PUT |
IO_U_F_TRIMMED | IO_U_F_BARRIER |
assert(io_u->flags & IO_U_F_FREE);
io_u_clear(td, io_u, IO_U_F_FREE | IO_U_F_NO_FILE_PUT |
IO_U_F_TRIMMED | IO_U_F_BARRIER |
- IO_U_F_VER_LIST);
+ IO_U_F_VER_LIST
| IO_U_F_PRIORITY
);
io_u->error = 0;
io_u->acct_ddir = -1;
io_u->error = 0;
io_u->acct_ddir = -1;
@@
-1830,7
+1830,7
@@
static void account_io_completion(struct thread_data *td, struct io_u *io_u,
unsigned long long tnsec;
tnsec = ntime_since(&io_u->start_time, &icd->time);
unsigned long long tnsec;
tnsec = ntime_since(&io_u->start_time, &icd->time);
- add_lat_sample(td, idx, tnsec, bytes, io_u->offset);
+ add_lat_sample(td, idx, tnsec, bytes, io_u->offset
, io_u_is_prio(io_u)
);
if (td->flags & TD_F_PROFILE_OPS) {
struct prof_io_ops *ops = &td->prof_io_ops;
if (td->flags & TD_F_PROFILE_OPS) {
struct prof_io_ops *ops = &td->prof_io_ops;
@@
-1849,7
+1849,7
@@
static void account_io_completion(struct thread_data *td, struct io_u *io_u,
if (ddir_rw(idx)) {
if (!td->o.disable_clat) {
if (ddir_rw(idx)) {
if (!td->o.disable_clat) {
- add_clat_sample(td, idx, llnsec, bytes, io_u->offset);
+ add_clat_sample(td, idx, llnsec, bytes, io_u->offset
, io_u_is_prio(io_u)
);
io_u_mark_latency(td, llnsec);
}
io_u_mark_latency(td, llnsec);
}
@@
-2091,7
+2091,7
@@
void io_u_queued(struct thread_data *td, struct io_u *io_u)
td = td->parent;
add_slat_sample(td, io_u->ddir, slat_time, io_u->xfer_buflen,
td = td->parent;
add_slat_sample(td, io_u->ddir, slat_time, io_u->xfer_buflen,
- io_u->offset);
+ io_u->offset
, io_u_is_prio(io_u)
);
}
}
}
}
@@
-2182,7
+2182,7
@@
void io_u_fill_buffer(struct thread_data *td, struct io_u *io_u,
static int do_sync_file_range(const struct thread_data *td,
struct fio_file *f)
{
static int do_sync_file_range(const struct thread_data *td,
struct fio_file *f)
{
-
off
64_t offset, nbytes;
+
uint
64_t offset, nbytes;
offset = f->first_write;
nbytes = f->last_write - f->first_write;
offset = f->first_write;
nbytes = f->last_write - f->first_write;