blk-iocost: clamp inuse and skip noops in __propagate_weights()
[ Upstream commit db84a72af6be422abf2089a5896293590dda5066 ] __propagate_weights() currently expects the callers to clamp inuse within [1, active], which is needlessly fragile. The inuse adjustment logic is going to be revamped, in preparation, let's make __propagate_weights() clamp inuse on entry. Also, make it avoid weight updates altogether if neither active or inuse is changed. Signed-off-by: Tejun Heo <tj@kernel.org> Signed-off-by: Jens Axboe <axboe@kernel.dk> Stable-dep-of: 57e420c84f9a ("blk-iocost: Avoid using clamp() on inuse in __propagate_weights()") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
8c29e7ece6
commit
24075e3895
@@ -907,7 +907,10 @@ static void __propagate_active_weight(struct ioc_gq *iocg, u32 active, u32 inuse
|
||||
|
||||
lockdep_assert_held(&ioc->lock);
|
||||
|
||||
inuse = min(active, inuse);
|
||||
inuse = clamp_t(u32, inuse, 1, active);
|
||||
|
||||
if (active == iocg->active && inuse == iocg->inuse)
|
||||
return;
|
||||
|
||||
for (lvl = iocg->level - 1; lvl >= 0; lvl--) {
|
||||
struct ioc_gq *parent = iocg->ancestors[lvl];
|
||||
|
||||
Reference in New Issue
Block a user