[PATCH 0/3] cgroup: block device i/o bandwidth controller (v4)

Andrea Righi righi.andrea at gmail.com
Fri Jul 4 06:58:45 PDT 2008

The objective of the i/o bandwidth controller is to improve i/o performance
predictability of different cgroups sharing the same block devices.

Respect to other priority/weight-based solutions the approach used by this
controller is to explicitly choke applications' requests that directly (or
indirectly) generate i/o activity in the system.

The direct bandwidth limiting method has the advantage of improving the
performance predictability at the cost of reducing, in general, the overall
performance of the system (in terms of throughput).

Detailed informations about design, its goal and usage are described in the

Tested against latest git (2.6.26-rc8).

The all-in-one patch (and previous versions) can be found at:

Most of the changes in v4 are based on the Andrew Morton's review of patchset
v3. Thanks Andrew.

Changelog: (v3 -> v4)
  - avoid potential deadlock in __set_page_dirty() with CONFIG_PREEMPT=n
  - do not treat partitions as separate block devices: only entire block
    devices are allowed to define i/o throttling rules; moreover, i/o activity
    on partitions is accounted to opportune entire block device they belong to.
  - reworked userspace<->kernel interface: accept and store all values in
    bytes/sec (a userspace front-end application will take care of properly
    showing and accepting values in human-readable format)
  - uninlined a lot of functions
  - code formatting fixes
  - more documentation

  - see documentation


More information about the Containers mailing list