[lkml]   [2012]   [Nov]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH 9/9 v3] cgroup_freezer: implement proper hierarchy support
On Thu 08-11-12 09:57:50, Tejun Heo wrote:
> Up until now, cgroup_freezer didn't implement hierarchy properly.
> cgroups could be arranged in hierarchy but it didn't make any
> difference in how each cgroup_freezer behaved. They all operated
> separately.
> This patch implements proper hierarchy support. If a cgroup is
> frozen, all its descendants are frozen. A cgroup is thawed iff it and
> all its ancestors are THAWED. freezer.self_freezing shows the current
> freezing state for the cgroup itself. freezer.parent_freezing shows
> whether the cgroup is freezing because any of its ancestors is
> freezing.
> freezer_post_create() locks the parent and new cgroup and inherits the
> parent's state and freezer_change_state() applies new state top-down
> using cgroup_for_each_descendant_pre() which guarantees that no child
> can escape its parent's state. update_if_frozen() uses
> cgroup_for_each_descendant_post() to propagate frozen states
> bottom-up.
> Synchronization could be coarser and easier by using a single mutex to
> protect all hierarchy operations. Finer grained approach was used
> because it wasn't too difficult for cgroup_freezer and I think it's
> beneficial to have an example implementation and cgroup_freezer is
> rather simple and can serve a good one.
> As this makes cgroup_freezer properly hierarchical,
> freezer_subsys.broken_hierarchy marking is removed.
> Note that this patch changes userland visible behavior - freezing a
> cgroup now freezes all its descendants too. This behavior change is
> intended and has been warned via .broken_hierarchy.
> v2: Michal spotted a bug in freezer_change_state() - descendants were
> inheriting from the wrong ancestor. Fixed.
> v3: Documentation/cgroups/freezer-subsystem.txt updated.
> Signed-off-by: Tejun Heo <>
> Reviewed-by: Tejun Heo <>

You probably meant Reviewed-by: Michal Hocko .... ;)
Michal Hocko

 \ /
  Last update: 2012-11-08 19:41    [W:0.113 / U:0.120 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site