[PATCH -mm 0/6] cgroup: block device i/o controller (v11)

From: Andrea Righi
Date: Tue Oct 07 2008 - 06:04:00 EST



The objective of the i/o 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 and/or iops 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
documentation.

Patchset against 2.6.27-rc5-mm1:

[PATCH 0/6] cgroup: block device i/o controller (v11)
[PATCH 1/6] i/o controller documentation
[PATCH 2/6] introduce ratelimiting attributes and functionality to res_counter
[PATCH 3/6] i/o controller infrastructure
[PATCH 4/6] memcg: interface to charge the right cgroup of asynchronous i/o activity
[PATCH 5/6] i/o controller instrumentation: accounting and throttling
[PATCH 6/6] export per-task i/o throttling statistics to userspace

The all-in-one patch (and previous versions) can be found at:
http://download.systemimager.org/~arighi/linux/patches/io-throttle/

There are no significant changes respect to v10, I've only implemented/fixed
some suggestions I received.

Changelog: (v10 -> v11)

* report per block device i/o statistics (total bytes read/written and iops)
in blockio.stat for i/o limited cgroups
* distinct bandwidth and iops statistics: both in blockio.throttlecnt and
/proc/PID/io-throttle-stat (suggested by David Radford)
* merge res_counter_ratelimit functionality into res_counter, to avoid code
duplication (suggested by Paul Manage)
* use kernel-doc style for documenting struct res_counter attributes
(suggested by Randy Dunalp)
* udpated documentation

Thanks to all for the feedback!
-Andrea
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/