blk-iocost: clamp inuse and skip noops in __propagate_weights()
__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>
This commit is contained in:
parent
00410f1b09
commit
db84a72af6
|
@ -897,7 +897,10 @@ static void __propagate_weights(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];
|
||||
|
|
Loading…
Reference in New Issue