Messages in this thread Patch in this message | | | Date | Wed, 25 Feb 2009 16:28:31 +0530 | From | Bharata B Rao <> | Subject | [RFC PATCH 1/2] New cgroup subsystem API (->initialize()) |
| |
From: Balaji Rao <balajirrao@gmail.com>
cgroup: Add ->initialize() to cgroup_subsys structure
Some cgroup subsystems (like cpu controller) would need subsystem specific initialization. Such subsystems can define ->initialize() which gets called during cgroup_init() (and not cgroup_init_early()).
Signed-off-by: Balaji Rao <balajirrao@gmail.com> Signed-off-by: Bharata B Rao <bharata@linux.vnet.ibm.com> --- Documentation/cgroups/cgroups.txt | 6 ++++++ include/linux/cgroup.h | 1 + kernel/cgroup.c | 2 ++ 3 files changed, 9 insertions(+)
--- a/Documentation/cgroups/cgroups.txt +++ b/Documentation/cgroups/cgroups.txt @@ -534,6 +534,12 @@ and root cgroup. Currently this will onl the default hierarchy (which never has sub-cgroups) and a hierarchy that is being created/destroyed (and hence has no sub-cgroups). +void initialize(void) + +Called during cgroup initialization (cgroup_init()) to do any subsystem +specific initialization. This is not called during early cgroup +initialialization (cgroup_init_early(). + 4. Questions ============ --- a/include/linux/cgroup.h +++ b/include/linux/cgroup.h @@ -359,6 +359,7 @@ struct cgroup_subsys { struct cgroup *cgrp); void (*post_clone)(struct cgroup_subsys *ss, struct cgroup *cgrp); void (*bind)(struct cgroup_subsys *ss, struct cgroup *root); + void (*initialize)(void); int subsys_id; int active; --- a/kernel/cgroup.c +++ b/kernel/cgroup.c @@ -2707,6 +2707,8 @@ int __init cgroup_init(void) struct cgroup_subsys *ss = subsys[i]; if (!ss->early_init) cgroup_init_subsys(ss); + if (ss->initialize) + ss->initialize(); } /* Add init_css_set to the hash table */
| |