[PATCH 0/7] introduce bio-cgroup into io-throttle

Gui Jianfeng guijianfeng at cn.fujitsu.com
Thu Nov 20 03:05:00 PST 2008


Hi all,

For the moment, io-throttle can trace buffered-io by means of memcg. This 
patchset introduces bio-cgroup into io-throttle, and splits it from memcg.
For the current implemetation, there are two ways can be used to trace
buffered-io. The first is mount io-throttle and bio-cgroup together.
This is a aggressive way, because there might have some troubles if other
subsystem also want to use bio-cgroup.
The other way is more gentle, io-throttle can use the bio-cgroup id to 
associate with a given bio-cgroup. If an association is created, synchronization 
between two groups will be performed automatically. This means if one task
adds into or removes from an associated bio-cgroup group, the corresponding 
io-throttle group will also add or remove this task.
If one io-throttle associates with a bio-cgroup group, tasks moving in this 
io-throttle group is forbidden.
A new io-throttle file blockio.bio_id is added. This file is used to create or remove an 
association. blockio.bio_id accessing in root hierarchy is not allowed. Following command
is valid.
$echo 1 > /mnt/throttle/group1/blockio.bio_id (associate this io-throttle group with bio-cgroup 1)
$echo -1 > /mnt/throttle/group1/blockio.bio_id (remove association between this io-throttle group and bio-cgroup 1)

One bio-cgroup group can't be associated twice. If you do so, error message will show.
If io-throttle has been mounted with bio-cgroup, all blockio.bio_id related actions are of no effect.

Dependency checking callback is introduced into cgroup.
You can't mount io-throttle with other subsystems except bio-cgroup. Beacuse other subsystem might break
the association between io-throttle and bio-cgroup.

This patchset is against 2.6.28-rc2-mm1.

-- 
Regards
Gui Jianfeng








More information about the Containers mailing list