summaryrefslogtreecommitdiffstats
path: root/drivers/block
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2013-05-14 22:52:38 +0200
committerTejun Heo <tj@kernel.org>2013-05-14 22:52:38 +0200
commit693e751e70843c29884cde326016e746fa16073a (patch)
treed12aa8b02858788ff37bffb0336996ad79b0d84a /drivers/block
parentblk-throttle: Account for child group's start time in parent while bio climbs up (diff)
downloadlinux-693e751e70843c29884cde326016e746fa16073a.tar.xz
linux-693e751e70843c29884cde326016e746fa16073a.zip
blk-throttle: implement throtl_grp->has_rules[]
blk_throtl_bio() has a quick exit path for throtl_grps without limits configured. It looks at the bps and iops limits and if both are not configured, the bio is issued immediately. While this is correct in the current flat hierarchy as each throtl_grp behaves completely independently, it would become wrong in proper hierarchy mode. A group without any limits could still be limited by one of its ancestors and bio's queued for such group should not bypass blk-throtl. As having a quick bypass mechanism is beneficial, this patch reimplements the mechanism such that it's correct even with proper hierarchy. throtl_grp->has_rules[] is added. These booleans are updated for the whole subtree whenever a config is updated so that has_rules[] of the whole subtree stays synchronized. They're also updated when a new throtl_grp comes online so that it can't escape the limits of its ancestors. As no throtl_grp has another throtl_grp as parent now, this patch doesn't yet make any behavior differences. Signed-off-by: Tejun Heo <tj@kernel.org> Acked-by: Vivek Goyal <vgoyal@redhat.com>
Diffstat (limited to 'drivers/block')
0 files changed, 0 insertions, 0 deletions