Skip to content
  • Tejun Heo's avatar
    blk-throttle: make blk_throtl_bio() ready for hierarchy · 9e660acf
    Tejun Heo authored
    
    
    Currently, blk_throtl_bio() issues the passed in bio directly if it's
    within limits of its associated tg (throtl_grp).  This behavior
    becomes incorrect with hierarchy support as the bio should be
    accounted to and throttled by the ancestor throtl_grps too.
    
    This patch makes the direct issue path of blk_throtl_bio() to loop
    until it reaches the top-level service_queue or gets throttled.  If
    the former, the bio can be issued directly; otherwise, it gets queued
    at the first layer it was above limits.
    
    As tg->parent_sq is always the top-level service queue currently, this
    patch in itself doesn't make any behavior differences.
    
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Acked-by: default avatarVivek Goyal <vgoyal@redhat.com>
    9e660acf