Tejun Heo <tj@xxxxxxxxxx> writes: > Currently, cgroup directories are populated by subsys->populate() > callback explicitly creating files on each cgroup creation. This > level of flexibility isn't needed or desirable. It provides largely > unused flexibility which call for abuses while severely limiting what > the core layer can do through the lack of structure and conventions. > > Per each cgroup file type, the only distinction that cgroup users is > making is whether a cgroup is root or not, which can easily be > expressed with flags. > > This patch introduces cgroup_add_cftypes() and its wrapper macros - > CGROUP_SUBSYS_CFTYPES[_COND](). These deal with cftypes instead of > individual files - controllers indicate that certain types of files > exist for certain subsystem. Newly added CFTYPE_*_ON_ROOT flags > indicate whether a cftype should be excluded or created only on the > root cgroup. > > cgroup_add_cftypes() can be called any time whether the target > subsystem is currently attached or not. cgroup core will create files > on the existing cgroups as necessary. CGROUP_SUBSYS_CFTYPES[_COND]() > are convenience macros controllers so that cftypes can be declared to > belong to certain cgroup. The COND variant is useful for cases where > certain files are dependent on boot time parameter. > > Further patches will convert the existing users and remove the file > based interface. Note that this interface allows dynamic addition of > files to an active controller. This will be used for sub-controller > modularity and unified hierarchy in the longer term. > > This patch implements the new mechanism but doesn't apply it to any > user. > ..... > +/* > + * Declare cftype array @cfts for cgroup subsys @ss if @cond is %true. > + * Useful if the files are dependent on boot time parameter. > + */ > +#define CGROUP_SUBSYS_CFTYPES_COND(ss, cfts, cond) \ > + static int __init __cgroup_cfts_init_##ss_##cfts(void) \ > + { \ > + if ((cond)) \ > + WARN_ON(cgroup_add_cftypes(&ss, cfts)); \ > + return 0; \ > + } \ > + fs_initcall(__cgroup_cfts_init_##ss_##cfts); > + Instead of using CGROUP_SUBSYS_CFTYPES_COND, are you ok if other subsystem called cgroup_add_cftypes ?. I am looking at how this will impact http://article.gmane.org/gmane.linux.kernel.mm/75470 . With HugeTLB we cannot do the above. -aneesh _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/containers