Re: [RFC PATCH] blk-iocost: Optimize the ioc_refreash_vrate() function

From: Baolin Wang
Date: Thu Dec 03 2020 - 22:37:23 EST




在 2020/12/3 4:32, Tejun Heo 写道:
On Sun, Nov 29, 2020 at 10:37:18AM +0800, Baolin Wang wrote:
The ioc_refreash_vrate() will only be called in ioc_timer_fn() after
starting a new period or stopping the period.

So when starting a new period, the variable 'pleft' in ioc_refreash_vrate()
is always the period's time, which means if the abs(ioc->vtime_err)
is less than the period's time, the vcomp is 0, and we do not need
compensate the vtime_rate in this case, just set it as the base vrate
and return.

When stopping the period, the ioc->vtime_err will be cleared to 0,
and we also do not need to compensate the vtime_rate, just set it as
the base vrate and return.

Before, the function did something which is conceptually discrete and
describable. After, its operation is intertwined with when it's called. I
don't think this sort of micro optimizations are beneficial in cold paths.

OK. I understood your concern. Thanks for your input.