Fix rate limiting
authorJens Axboe <axboe@kernel.dk>
Fri, 8 Feb 2013 18:05:25 +0000 (19:05 +0100)
committerJens Axboe <axboe@kernel.dk>
Fri, 8 Feb 2013 18:05:25 +0000 (19:05 +0100)
Commit e0224c6b accidentally broke rate limiting, since
it bypassed the sleep logic. Rework it slightly to not
skip that.

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

diff --git a/io_u.c b/io_u.c
index 6598881..1013c7f 100644 (file)
--- a/io_u.c
+++ b/io_u.c
@@ -490,14 +490,14 @@ static enum fio_ddir rate_ddir(struct thread_data *td, enum fio_ddir ddir)
 
        assert(ddir_rw(ddir));
 
-       if (td->rate_pending_usleep[ddir] <= 0 || !td->o.rwmix[odir])
+       if (td->rate_pending_usleep[ddir] <= 0)
                return ddir;
 
        /*
         * We have too much pending sleep in this direction. See if we
         * should switch.
         */
-       if (td_rw(td)) {
+       if (td_rw(td) && td->o.rwmix[odir]) {
                /*
                 * Other direction does not have too much pending, switch
                 */