summaryrefslogtreecommitdiff
path: root/block
diff options
context:
space:
mode:
authorKemeng Shi <shikemeng@huawei.com>2022-10-18 20:19:29 +0800
committerJens Axboe <axboe@kernel.dk>2022-12-01 07:44:12 -0700
commitc6d2efdd38b4e45741e103b6338f08e5ff2aae03 (patch)
treed9157107f4d5fe1955d556c7986c2231efdffb02 /block
parentecaaaabeead5329aa4c697c484bfc21cc129ab10 (diff)
blk-iocost: Reset vtime_base_rate in ioc_refresh_params
Since commit ac33e91e2daca("blk-iocost: implement vtime loss compensation") split vtime_rate into vtime_rate and vtime_base_rate, we need reset both vtime_base_rate and vtime_rate when device parameters are refreshed. If vtime_base_rate is no reset here, vtime_rate will be overwritten with old vtime_base_rate soon in ioc_refresh_vrate. Signed-off-by: Kemeng Shi <shikemeng@huawei.com> Acked-by: Tejun Heo <tj@kernel.org> Link: https://lore.kernel.org/r/20221018121932.10792-3-shikemeng@huawei.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block')
-rw-r--r--block/blk-iocost.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/block/blk-iocost.c b/block/blk-iocost.c
index 2b8abc499b18..c3945d470779 100644
--- a/block/blk-iocost.c
+++ b/block/blk-iocost.c
@@ -906,8 +906,10 @@ static bool ioc_refresh_params(struct ioc *ioc, bool force)
if (idx == ioc->autop_idx && !force)
return false;
- if (idx != ioc->autop_idx)
+ if (idx != ioc->autop_idx) {
atomic64_set(&ioc->vtime_rate, VTIME_PER_USEC);
+ ioc->vtime_base_rate = VTIME_PER_USEC;
+ }
ioc->autop_idx = idx;
ioc->autop_too_fast_at = 0;