• Tejun Heo's avatar
    blk-iocost: streamline vtime margin and timer slack handling · 7ca5b2e6
    Tejun Heo authored
    The margin handling was pretty inconsistent.
    
    * ioc->margin_us and ioc->inuse_margin_vtime were used as vtime margin
      thresholds. However, the two are in different units with the former
      requiring conversion to vtime on use.
    
    * iocg_kick_waitq() was using a quarter of WAITQ_TIMER_MARGIN_PCT of
      period_us as the timer slack - ~1.2%. While iocg_kick_delay() was using a
      quarter of ioc->margin_us - ~12.5%. There aren't strong reasons to use
      different values for the two.
    
    This patch cleans up margin and timer slack handling:
    
    * vtime margins are now recorded in ioc->margins.{min, max} on period
      duration changes and used consistently.
    
    * Timer slack is now 1% of period_us and recorded in ioc->timer_slack_ns and
      used consistently for iocg_kick_waitq() and iocg_kick_delay().
    
    The only functional change is shortening of timer slack. No meaningful
    visible change is expected.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    7ca5b2e6
blk-iocost.c 69.4 KB