projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add low water mark for queuing depth
[fio.git]
/
fio.c
diff --git
a/fio.c
b/fio.c
index e4fec4f6e0202a041dfd4524f45570a0bdd074de..1c2748e06ee4483b0cdef5457757985140a133a6 100644
(file)
--- a/
fio.c
+++ b/
fio.c
@@
-287,9
+287,13
@@
requeue:
* completed io_u's first.
*/
min_events = 0;
* completed io_u's first.
*/
min_events = 0;
- if (queue_full(td) || ret == FIO_Q_BUSY)
+ if (queue_full(td) || ret == FIO_Q_BUSY)
{
min_events = 1;
min_events = 1;
+ if (td->cur_depth > td->iodepth_low)
+ min_events = td->cur_depth - td->iodepth_low;
+ }
+
/*
* Reap required number of io units, if any, and do the
* verification on them through the callback handler
/*
* Reap required number of io units, if any, and do the
* verification on them through the callback handler
@@
-411,9
+415,13
@@
requeue:
*/
if (ret == FIO_Q_QUEUED || ret == FIO_Q_BUSY) {
min_evts = 0;
*/
if (ret == FIO_Q_QUEUED || ret == FIO_Q_BUSY) {
min_evts = 0;
- if (queue_full(td) || ret == FIO_Q_BUSY)
+ if (queue_full(td) || ret == FIO_Q_BUSY)
{
min_evts = 1;
min_evts = 1;
+ if (td->cur_depth > td->iodepth_low)
+ min_evts = td->cur_depth - td->iodepth_low;
+ }
+
fio_gettime(&comp_time, NULL);
bytes_done = io_u_queued_complete(td, min_evts, NULL);
if (bytes_done < 0)
fio_gettime(&comp_time, NULL);
bytes_done = io_u_queued_complete(td, min_evts, NULL);
if (bytes_done < 0)