td->zone_bytes = 0;
td->rate_bytes = 0;
td->rate_blocks = 0;
- td->rw_end_set[0] = td->rw_end_set[1] = 0;
td->last_was_sync = 0;
clear_state = 1;
if (td_read(td) && td->io_bytes[DDIR_READ]) {
- if (td->rw_end_set[DDIR_READ])
- elapsed = utime_since(&td->start,
- &td->rw_end[DDIR_READ]);
- else
- elapsed = utime_since_now(&td->start);
-
+ elapsed = utime_since_now(&td->start);
runtime[DDIR_READ] += elapsed;
}
if (td_write(td) && td->io_bytes[DDIR_WRITE]) {
- if (td->rw_end_set[DDIR_WRITE])
- elapsed = utime_since(&td->start,
- &td->rw_end[DDIR_WRITE]);
- else
- elapsed = utime_since_now(&td->start);
-
+ elapsed = utime_since_now(&td->start);
runtime[DDIR_WRITE] += elapsed;
}
struct timeval start; /* start of this loop */
struct timeval epoch; /* time job was started */
- struct timeval rw_end[2];
struct timeval last_issue;
struct timeval tv_cache;
unsigned int tv_cache_nr;
unsigned int tv_cache_mask;
- unsigned int rw_end_set[2];
unsigned int ramp_time_over;
/*
* Check if it's time to seed a new data direction.
*/
if (td->io_issues[td->rwmix_ddir] >= td->rwmix_issues) {
- unsigned long long max_bytes;
enum fio_ddir ddir;
/*
* ranges too much
*/
ddir = get_rand_ddir(td);
- max_bytes = td->this_io_bytes[ddir];
- if (max_bytes >=
- (td->o.size * td->o.rwmix[ddir] / 100)) {
- if (!td->rw_end_set[ddir]) {
- td->rw_end_set[ddir] = 1;
- fio_gettime(&td->rw_end[ddir], NULL);
- }
-
- ddir ^= 1;
- }
if (ddir != td->rwmix_ddir)
set_rwmix_bytes(td);