lkml.org 
[lkml]   [2012]   [Mar]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCH 03/10] cgroup: implement cgroup_add_cftypes() and friends
    Date
    Tejun Heo <tj@kernel.org> 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



    \
     
     \ /
      Last update: 2012-03-20 09:55    [W:6.936 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site