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:
parent
8c29e7ece6
commit
24075e3895
1 changed files with 4 additions and 1 deletions
|
|
@ -907,7 +907,10 @@ static void __propagate_active_weight(struct ioc_gq *iocg, u32 active, u32 inuse
|
||||||
|
|
||||||
lockdep_assert_held(&ioc->lock);
|
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--) {
|
for (lvl = iocg->level - 1; lvl >= 0; lvl--) {
|
||||||
struct ioc_gq *parent = iocg->ancestors[lvl];
|
struct ioc_gq *parent = iocg->ancestors[lvl];
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue