summaryrefslogtreecommitdiffstats
path: root/Documentation/fault-injection
diff options
context:
space:
mode:
authorShaohua Li <shli@fb.com>2017-03-27 19:51:34 +0200
committerJens Axboe <axboe@fb.com>2017-03-28 16:02:20 +0200
commitc79892c5576163b3c7403b9d75cbe8dcae65e428 (patch)
tree09dd9d4d38045a8daf7d0a06aa25bce03611973d /Documentation/fault-injection
parentblk-throttle: configure bps/iops limit for cgroup in low limit (diff)
downloadlinux-c79892c5576163b3c7403b9d75cbe8dcae65e428.tar.xz
linux-c79892c5576163b3c7403b9d75cbe8dcae65e428.zip
blk-throttle: add upgrade logic for LIMIT_LOW state
When queue is in LIMIT_LOW state and all cgroups with low limit cross the bps/iops limitation, we will upgrade queue's state to LIMIT_MAX. To determine if a cgroup exceeds its limitation, we check if the cgroup has pending request. Since cgroup is throttled according to the limit, pending request means the cgroup reaches the limit. If a cgroup has limit set for both read and write, we consider the combination of them for upgrade. The reason is read IO and write IO can interfere with each other. If we do the upgrade based in one direction IO, the other direction IO could be severly harmed. For a cgroup hierarchy, there are two cases. Children has lower low limit than parent. Parent's low limit is meaningless. If children's bps/iops cross low limit, we can upgrade queue state. The other case is children has higher low limit than parent. Children's low limit is meaningless. As long as parent's bps/iops (which is a sum of childrens bps/iops) cross low limit, we can upgrade queue state. Signed-off-by: Shaohua Li <shli@fb.com> Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'Documentation/fault-injection')
0 files changed, 0 insertions, 0 deletions