Linux Container Development
 help / color / mirror / Atom feed
  • [parent not found: <1365808259-31073-3-git-send-email-tj@kernel.org>]
  • [parent not found: <1365808259-31073-5-git-send-email-tj@kernel.org>]
  • * [PATCHSET] cgroup, memcg: introduce sane_behavior mount option
    @ 2013-04-12 23:10 Tejun Heo
      0 siblings, 0 replies; 22+ messages in thread
    From: Tejun Heo @ 2013-04-12 23:10 UTC (permalink / raw)
      To: lizefan-hv44wF8Li93QT0dZR+AlfA
      Cc: containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
    	linux-kernel-u79uwXL29TY76Z2rM5mHXA, mhocko-AlSwsSmVLrQ,
    	vgoyal-H+wXaHxf7aLQT0dZR+AlfA, cgroups-u79uwXL29TY76Z2rM5mHXA
    
    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.
    
    The memcg patch doesn't conflict with memcg changes in -next, so it
    can be routed through the cgroup tree.  Michal, how do you wanna route
    it?
    
    This patchset is based on top of cgroup/for-3.10 and also available in
    the following git branch.
    
     git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git review-cgroup-sane_behavior
    
    Thanks.
    
     include/linux/cgroup.h |  103 +++++++++++++++++++++++++++++++++++++++++
     kernel/cgroup.c        |  121 ++++++++++++++++++++++---------------------------
     mm/memcontrol.c        |   13 +++++
     3 files changed, 172 insertions(+), 65 deletions(-)
    
    --
    tejun
    
    ^ permalink raw reply	[flat|nested] 22+ messages in thread

    end of thread, other threads:[~2013-04-15 20:57 UTC | newest]
    
    Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
    -- links below jump to the message on this page --
         [not found] <1365808259-31073-1-git-send-email-tj@kernel.org>
         [not found] ` <1365808259-31073-1-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
    2013-04-12 23:10   ` [PATCH 1/4] cgroup: convert cgroupfs_root flag bits to masks and add CGRP_ prefix Tejun Heo
         [not found]     ` <1365808259-31073-2-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
    2013-04-15  0:56       ` Serge Hallyn
    2013-04-12 23:10   ` [PATCH 2/4] move cgroupfs_root to include/linux/cgroup.h Tejun Heo
    2013-04-12 23:10   ` [PATCH 3/4] cgroup: introduce sane_behavior mount option Tejun Heo
         [not found]     ` <1365808259-31073-4-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
    2013-04-15  1:05       ` Serge Hallyn
    2013-04-15  2:49       ` Li Zefan
         [not found]         ` <516B6AAB.8010507-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
    2013-04-15  2:54           ` Tejun Heo
    2013-04-12 23:10   ` [PATCH 4/4] memcg: force use_hierarchy if sane_behavior Tejun Heo
    2013-04-15  2:50   ` [PATCHSET] cgroup, memcg: introduce sane_behavior mount option Li Zefan
    2013-04-15  3:17   ` Tejun Heo
         [not found]     ` <20130415031754.GG3050-Gd/HAXX7CRxy/B6EtB590w@public.gmane.org>
    2013-04-15 14:46       ` Michal Hocko
         [not found] ` <1365808259-31073-3-git-send-email-tj@kernel.org>
         [not found]   ` <1365808259-31073-3-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
    2013-04-15  1:02     ` [PATCH 2/4] move cgroupfs_root to include/linux/cgroup.h Serge Hallyn
         [not found] ` <1365808259-31073-5-git-send-email-tj@kernel.org>
         [not found]   ` <1365808259-31073-5-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
    2013-04-15  1:06     ` [PATCH 4/4] memcg: force use_hierarchy if sane_behavior Serge Hallyn
    2013-04-15  1:13     ` Serge Hallyn
    2013-04-15  2:35       ` Michal Hocko
    2013-04-15  2:39       ` Tejun Heo
         [not found]         ` <20130415023935.GE3050-Gd/HAXX7CRxy/B6EtB590w@public.gmane.org>
    2013-04-15  5:29           ` Serge Hallyn
    2013-04-15 14:42     ` Michal Hocko
    2013-04-15 15:29     ` Kamezawa Hiroyuki
    2013-04-15 20:40     ` [PATCH v2 " Tejun Heo
         [not found]   ` <20130415204016.GA19531@mtj.dyndns.org>
         [not found]     ` <20130415204016.GA19531-9pTldWuhBndy/B6EtB590w@public.gmane.org>
    2013-04-15 20:57       ` Michal Hocko
    2013-04-12 23:10 [PATCHSET] cgroup, memcg: introduce sane_behavior mount option Tejun Heo
    

    This is a public inbox, see mirroring instructions
    for how to clone and mirror all data and code used for this inbox