X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=io_u.c;h=8ec9dd9ecbfdd9b721b7a0b905fdbee9b89c5a84;hp=318614cdb39b5213fc8d833a9f028b560f27eb84;hb=02bcaa8c31feb93c61b701d143a7eea3efd2124d;hpb=c11883f748f8f192fc6b4b0ec25add8781a8f4a8 diff --git a/io_u.c b/io_u.c index 318614cd..8ec9dd9e 100644 --- a/io_u.c +++ b/io_u.c @@ -153,7 +153,7 @@ static int get_rw_ddir(struct thread_data *td) struct timeval now; unsigned long elapsed; - gettimeofday(&now, NULL); + fio_gettime(&now, NULL); elapsed = mtime_since_now(&td->rwmix_switch); /* @@ -296,14 +296,13 @@ struct io_u *get_io_u(struct thread_data *td, struct fio_file *f) return NULL; } - gettimeofday(&io_u->start_time, NULL); + fio_gettime(&io_u->start_time, NULL); return io_u; } void io_completed(struct thread_data *td, struct io_u *io_u, struct io_completion_data *icd) { - struct timeval e; unsigned long msec; if (io_u->ddir == DDIR_SYNC) { @@ -313,8 +312,6 @@ void io_completed(struct thread_data *td, struct io_u *io_u, td->last_was_sync = 0; - gettimeofday(&e, NULL); - if (!io_u->error) { unsigned int bytes = io_u->buflen - io_u->resid; const int idx = io_u->ddir; @@ -324,10 +321,12 @@ void io_completed(struct thread_data *td, struct io_u *io_u, td->zone_bytes += bytes; td->this_io_bytes[idx] += bytes; - msec = mtime_since(&io_u->issue_time, &e); + io_u->file->last_completed_pos = io_u->offset + io_u->buflen; + + msec = mtime_since(&io_u->issue_time, &icd->time); add_clat_sample(td, idx, msec); - add_bw_sample(td, idx); + add_bw_sample(td, idx, &icd->time); if ((td_rw(td) || td_write(td)) && idx == DDIR_WRITE) log_io_piece(td, io_u); @@ -342,6 +341,8 @@ void ios_completed(struct thread_data *td, struct io_completion_data *icd) struct io_u *io_u; int i; + fio_gettime(&icd->time, NULL); + icd->error = 0; icd->bytes_done[0] = icd->bytes_done[1] = 0;