blk-iolatency: clear use_delay when io.latency is set to zero
authorTejun Heo <tj@kernel.org>
Thu, 13 Jun 2019 22:30:37 +0000 (15:30 -0700)
committerJens Axboe <axboe@kernel.dk>
Sat, 15 Jun 2019 16:39:36 +0000 (10:39 -0600)
If use_delay was non-zero when the latency target of a cgroup was set
to zero, it will stay stuck until io.latency is enabled on the cgroup
again.  This keeps readahead disabled for the cgroup impacting
performance negatively.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Josef Bacik <jbacik@fb.com>
Fixes: d70675121546 ("block: introduce blk-iolatency io controller")
Cc: stable@vger.kernel.org # v4.19+
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-iolatency.c

index d22e61bced86dbe3cf4cfb4df047c234c1ae9c0d..17896bb3aaf28da2b3440a537305ba3d0ad2133d 100644 (file)
@@ -778,8 +778,10 @@ static int iolatency_set_min_lat_nsec(struct blkcg_gq *blkg, u64 val)
 
        if (!oldval && val)
                return 1;
-       if (oldval && !val)
+       if (oldval && !val) {
+               blkcg_clear_delay(blkg);
                return -1;
+       }
        return 0;
 }