[PATCHSET] cgroup, memcg: introduce sane_behavior mount option

Li Zefan lizefan at huawei.com
Mon Apr 15 02:50:00 UTC 2013


On 2013/4/13 7:10, Tejun Heo wrote:
> It's a sad fact that at this point various cgroup controllers are
> carrying so many idiosyncrasies and pure insanities that it simply
> isn't possible to reach any sort of sane consistent behavior while
> staying compatible with what already has been exposed to userland.
> 
> To make progress, those behaviors need to go but we can't simply drop
> or change the crazies as those are directly visible to userland.  This
> patchset implements a mount option - sane_behavior - which turns on
> new saner behaviors, so that we can keep providing the old behaviors
> while and after transitioning to saner ones.
> 
> As the behaviors which should be changed are still being determined
> and then implemented, __DEVEL__ prefix is added to the mount option
> and it triggers a warning message when used.
> 
> The mount option changes the following behaviors after this patchset.
> 
> * Mount options "noprefix" and "clone_children" are disallowed.  Also,
>   cgroupfs file cgroup.clone_children is not created.
> 
> * When mounting an existing superblock, mount options should match.
>   This is currently pretty crazy.  If one mounts a cgroup, creates a
>   subdirectory, unmounts it and then mount it again with different
>   option, it looks like the new options are applied but they aren't.
> 
> * Remount is disallowed.
> 
> * memcg: .use_hierarchy is forced on and the cgroupfs file is not
>   created.
> 
> and there are a lot more to come.  Basically, when turned on, all
> controllers should be ready to be mounted in the same hierarchy and
> not get in the way unless specifically configured - making blk-throtl
> hierarchical would need this to flip the meaning of limits, cpuset to
> allow tasks to run by default in new cgroups and handle empty cpusets
> in a way friendly to being co-mounted, and so on.
> 
> This patchset contains the following four patches.
> 
>  0001-cgroup-convert-cgroupfs_root-flag-bits-to-masks-and-.patch
>  0002-move-cgroupfs_root-to-include-linux-cgroup.h.patch
>  0003-cgroup-introduce-sane_behavior-mount-option.patch
>  0004-memcg-force-use_hierarchy-if-sane_behavior.patch
> 
> 0001-0002 are prep patches.  It exposes cgroupfs_root in cgroup.h so
> that flags can be tested with inline helpers.
> 
> 0003 introduces sane_behavior mount option and implements behavior
> changes in cgroup core proper.
> 
> 0004 makes memcg .use_hierarchy changes.
> 

Looks good to me!

Acked-by: Li Zefan <lizefan at huawei.com>



More information about the Containers mailing list