Messages in this thread | | | Date | Fri, 30 May 2008 10:43:12 +0900 | From | KAMEZAWA Hiroyuki <> | Subject | [RFC][PATCH 0/2] memcg: simple hierarchy (v2) |
| |
This is rewritten version of memcg hierarchy handling. ...and I'm sorry tons of typos in v1.
Changelog: - fixed typo. - removed meaningless params (borrow) - renamed structure members.
not-for-test. just for discussion. (I'll rewrite when our direction is fixed.)
Implemented Policy: - parent overcommits all children parent->usage = resource used by itself + resource moved to children. Of course, parent->limit > parent->usage. - when child's limit is set, the resouce moves. - no automatic resource moving between parent <-> child
Example) 1) Assume a cgroup with 1GB limits. (and no tasks belongs to this, now) - group_A limit=1G,usage=0M.
2) create group B, C under A. - group A limit=1G, usage=0M - group B limit=0M, usage=0M. - group C limit=0M, usage=0M.
3) increase group B's limit to 300M. - group A limit=1G, usage=300M. - group B limit=300M, usage=0M. - group C limit=0M, usage=0M.
4) increase group C's limit to 500M - group A limit=1G, usage=800M. - group B limit=300M, usage=0M. - group C limit=500M, usage=0M.
5) reduce group B's limit to 100M - group A limit=1G, usage=600M. - group B limit=100M, usage=0M. - group C limit=500M, usage=0M.
Why this is enough ? - A middleware can do various kind of resource balancing only by reseting "limit" in userland.
TODO(maybe) - rewrite force_empty to move the resource to the parent.
Thanks, -Kame
| |