Merge branch 'for-2.6.38/rc2-holder' into for-2.6.38/core
This commit is contained in:
@@ -89,6 +89,33 @@ Throttling/Upper Limit policy
|
|||||||
|
|
||||||
Limits for writes can be put using blkio.write_bps_device file.
|
Limits for writes can be put using blkio.write_bps_device file.
|
||||||
|
|
||||||
|
Hierarchical Cgroups
|
||||||
|
====================
|
||||||
|
- Currently none of the IO control policy supports hierarhical groups. But
|
||||||
|
cgroup interface does allow creation of hierarhical cgroups and internally
|
||||||
|
IO policies treat them as flat hierarchy.
|
||||||
|
|
||||||
|
So this patch will allow creation of cgroup hierarhcy but at the backend
|
||||||
|
everything will be treated as flat. So if somebody created a hierarchy like
|
||||||
|
as follows.
|
||||||
|
|
||||||
|
root
|
||||||
|
/ \
|
||||||
|
test1 test2
|
||||||
|
|
|
||||||
|
test3
|
||||||
|
|
||||||
|
CFQ and throttling will practically treat all groups at same level.
|
||||||
|
|
||||||
|
pivot
|
||||||
|
/ | \ \
|
||||||
|
root test1 test2 test3
|
||||||
|
|
||||||
|
Down the line we can implement hierarchical accounting/control support
|
||||||
|
and also introduce a new cgroup file "use_hierarchy" which will control
|
||||||
|
whether cgroup hierarchy is viewed as flat or hierarchical by the policy..
|
||||||
|
This is how memory controller also has implemented the things.
|
||||||
|
|
||||||
Various user visible config options
|
Various user visible config options
|
||||||
===================================
|
===================================
|
||||||
CONFIG_BLK_CGROUP
|
CONFIG_BLK_CGROUP
|
||||||
|
@@ -1452,10 +1452,6 @@ blkiocg_create(struct cgroup_subsys *subsys, struct cgroup *cgroup)
|
|||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Currently we do not support hierarchy deeper than two level (0,1) */
|
|
||||||
if (parent != cgroup->top_cgroup)
|
|
||||||
return ERR_PTR(-EPERM);
|
|
||||||
|
|
||||||
blkcg = kzalloc(sizeof(*blkcg), GFP_KERNEL);
|
blkcg = kzalloc(sizeof(*blkcg), GFP_KERNEL);
|
||||||
if (!blkcg)
|
if (!blkcg)
|
||||||
return ERR_PTR(-ENOMEM);
|
return ERR_PTR(-ENOMEM);
|
||||||
|
Reference in New Issue
Block a user