Message ID | 20221017020011.25016-7-shikemeng@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | A few cleanup and bugfix patches for blk-iocost | expand |
On Mon, Oct 17, 2022 at 10:00:09AM +0800, Kemeng Shi wrote: > The old_hwi is already max hweight_inuse if iocg->inuse == iocg->active. > Remove unnecessary calculation. > > Signed-off-by: Kemeng Shi <shikemeng@huawei.com> > --- > block/blk-iocost.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/block/blk-iocost.c b/block/blk-iocost.c > index 96c1571a8a1d..fa90f471dfdc 100644 > --- a/block/blk-iocost.c > +++ b/block/blk-iocost.c > @@ -2299,7 +2299,10 @@ static void ioc_timer_fn(struct timer_list *timer) > * Determine the donation amount. > */ > current_hweight(iocg, &hwa, &old_hwi); > - hwm = current_hweight_max(iocg); > + if (iocg->inuse == iocg->active) > + hwm = old_hwi; > + else > + hwm = current_hweight_max(iocg); I don't think this is correct. The intermediate nodes might be donating. This also isn't a meaningful optimization given that it's in the cold periodic timer path. I'd much rather keep the code simpler unless the performance benfeit can be clearly demonstrated. Thanks.
diff --git a/block/blk-iocost.c b/block/blk-iocost.c index 96c1571a8a1d..fa90f471dfdc 100644 --- a/block/blk-iocost.c +++ b/block/blk-iocost.c @@ -2299,7 +2299,10 @@ static void ioc_timer_fn(struct timer_list *timer) * Determine the donation amount. */ current_hweight(iocg, &hwa, &old_hwi); - hwm = current_hweight_max(iocg); + if (iocg->inuse == iocg->active) + hwm = old_hwi; + else + hwm = current_hweight_max(iocg); new_hwi = hweight_after_donation(iocg, old_hwi, hwm, usage, &now); /*
The old_hwi is already max hweight_inuse if iocg->inuse == iocg->active. Remove unnecessary calculation. Signed-off-by: Kemeng Shi <shikemeng@huawei.com> --- block/blk-iocost.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)