flow: quiesce pending IO before sleep
authorJens Axboe <axboe@kernel.dk>
Fri, 17 May 2013 19:52:08 +0000 (21:52 +0200)
committerJens Axboe <axboe@kernel.dk>
Fri, 17 May 2013 19:52:08 +0000 (21:52 +0200)
Similar potential latency problem as was fixed for thinktime
in commit 002e7183 and for rated IO in commit c3a1b740.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
flow.c

diff --git a/flow.c b/flow.c
index b7a2fb12287332eb01d7fe48cf0f0ad5eb7902dc..f9d868d8e7505c3a0cdb3adc8a7b2bb806526984 100644 (file)
--- a/flow.c
+++ b/flow.c
@@ -23,8 +23,11 @@ int flow_threshold_exceeded(struct thread_data *td)
 
        sign = td->o.flow > 0 ? 1 : -1;
        if (sign * flow->flow_counter > td->o.flow_watermark) {
 
        sign = td->o.flow > 0 ? 1 : -1;
        if (sign * flow->flow_counter > td->o.flow_watermark) {
-               if (td->o.flow_sleep)
+               if (td->o.flow_sleep) {
+                       io_u_quiesce(td);
                        usleep(td->o.flow_sleep);
                        usleep(td->o.flow_sleep);
+               }
+
                return 1;
        }
 
                return 1;
        }