• T
    blk-throttle: set REQ_THROTTLED from throtl_charge_bio() and gate stats update with it · 2a0f61e6
    Tejun Heo 提交于
    With proper hierarchy support, a bio can be dispatched multiple times
    until it reaches the top-level service_queue and we don't want to
    update dispatch stats at each step.  They are local stats and will be
    kept local.  If recursive stats are necessary, they should be
    implemented separately and definitely not by updating counters
    recursively on each dispatch.
    
    This patch moves REQ_THROTTLED setting to throtl_charge_bio() and gate
    stats update with it so that dispatch stats are updated only on the
    first time the bio is charged to a throtl_grp, which will always be
    the throtl_grp the bio was originally queued to.
    
    This means that REQ_THROTTLED would be set even for bios which don't
    get throttled.  As we don't want bios to leave blk-throtl with the
    flag set, move REQ_THROTLLED clearing to the end of blk_throtl_bio()
    and clear if the bio is being issued directly.
    Signed-off-by: NTejun Heo <tj@kernel.org>
    Acked-by: NVivek Goyal <vgoyal@redhat.com>
    2a0f61e6
blk-throttle.c 33.0 KB