projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' into gfio
[fio.git]
/
eta.c
diff --git
a/eta.c
b/eta.c
index 600b046ced8c86e16ff90b1d2dd05ac59e637d5a..066a732f23a211cdc167e0f6419c75d751cc1390 100644
(file)
--- a/
eta.c
+++ b/
eta.c
@@
-78,6
+78,7
@@
static void check_str_update(struct thread_data *td)
c = 'C';
break;
case TD_INITIALIZED:
c = 'C';
break;
case TD_INITIALIZED:
+ case TD_SETTING_UP:
c = 'I';
break;
case TD_NOT_CREATED:
c = 'I';
break;
case TD_NOT_CREATED:
@@
-139,13
+140,19
@@
static int thread_eta(struct thread_data *td)
}
/*
}
/*
- * if writing, bytes_total will be twice the size. If mixing,
- * assume a 50/50 split and thus bytes_total will be 50% larger.
+ * if writing and verifying afterwards, bytes_total will be twice the
+ * size. In a mixed workload, verify phase will be the size of the
+ * first stage writes.
*/
if (td->o.do_verify && td->o.verify && td_write(td)) {
*/
if (td->o.do_verify && td->o.verify && td_write(td)) {
- if (td_rw(td))
- bytes_total = bytes_total * 3 / 2;
- else
+ if (td_rw(td)) {
+ unsigned int perc = 50;
+
+ if (td->o.rwmix[DDIR_WRITE])
+ perc = td->o.rwmix[DDIR_WRITE];
+
+ bytes_total += (bytes_total * perc) / 100;
+ } else
bytes_total <<= 1;
}
bytes_total <<= 1;
}
@@
-318,7
+325,9
@@
int calc_thread_status(struct jobs_eta *je, int force)
} else if (td->runstate == TD_RAMP) {
je->nr_running++;
je->nr_ramp++;
} else if (td->runstate == TD_RAMP) {
je->nr_running++;
je->nr_ramp++;
- } else if (td->runstate < TD_RUNNING)
+ } else if (td->runstate == TD_SETTING_UP)
+ je->nr_running++;
+ else if (td->runstate < TD_RUNNING)
je->nr_pending++;
if (je->elapsed_sec >= 3)
je->nr_pending++;
if (je->elapsed_sec >= 3)