From 2f2c54ad3aa5cc5c8d3f3746343323f728c8348d Mon Sep 17 00:00:00 2001 From: Aleksei Zakharov Date: Mon, 11 Feb 2019 13:10:34 +0300 Subject: [PATCH 1/2] block: avoid setting wbt_lat_usec to current value There's no reason to set wbt min lat and freeze request queue if current value is the same. Reviewed-by: Johannes Thumshirn Signed-off-by: Aleksei Zakharov Signed-off-by: Jens Axboe (backported from commit b7143fe67bfc3b83a9e11371da659e1e70a1bbf3 linux-next) Signed-off-by: Kai-Heng Feng --- block/blk-sysfs.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/block/blk-sysfs.c b/block/blk-sysfs.c index 870484eaed1f..8eb5bbaf820a 100644 --- a/block/blk-sysfs.c +++ b/block/blk-sysfs.c @@ -454,13 +454,18 @@ static ssize_t queue_wb_lat_store(struct request_queue *q, const char *page, rwb = q->rq_wb; if (val == -1) - rwb->min_lat_nsec = wbt_default_latency_nsec(q); + val = wbt_default_latency_nsec(q); else if (val >= 0) - rwb->min_lat_nsec = val * 1000ULL; + val *= 1000ULL; + + if (rwb->min_lat_nsec == val) + return count; if (rwb->enable_state == WBT_STATE_ON_DEFAULT) rwb->enable_state = WBT_STATE_ON_MANUAL; + rwb->min_lat_nsec = val; + wbt_update_limits(rwb); return count; } -- 2.17.1