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 _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers