summaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorAndrew Morton <akpm@linux-foundation.org>2013-09-25 00:27:34 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2013-09-25 02:00:25 +0200
commit8f939a9f4c769500c58c31ec81ce17297388f4bf (patch)
tree987c5be7dbce3a941bc8f1a7d546b125de8b40bd /mm
parentrevert "memcg, vmscan: do not fall into reclaim-all pass too quickly" (diff)
downloadlinux-8f939a9f4c769500c58c31ec81ce17297388f4bf.tar.xz
linux-8f939a9f4c769500c58c31ec81ce17297388f4bf.zip
revert "memcg: track all children over limit in the root"
Revert commit 1be171d60bdd ("memcg: track all children over limit in the root") I merged this prematurely - Michal and Johannes still disagree about the overall design direction and the future remains unclear. Cc: Michal Hocko <mhocko@suse.cz> Cc: Johannes Weiner <hannes@cmpxchg.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm')
-rw-r--r--mm/memcontrol.c9
1 files changed, 0 insertions, 9 deletions
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index d5ff3ce13029..5ee0af463f2e 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -851,15 +851,9 @@ static void mem_cgroup_update_soft_limit(struct mem_cgroup *memcg)
/*
* Necessary to update all ancestors when hierarchy is used
* because their event counter is not touched.
- * We track children even outside the hierarchy for the root
- * cgroup because tree walk starting at root should visit
- * all cgroups and we want to prevent from pointless tree
- * walk if no children is below the limit.
*/
while (delta && (parent = parent_mem_cgroup(parent)))
atomic_add(delta, &parent->children_in_excess);
- if (memcg != root_mem_cgroup && !root_mem_cgroup->use_hierarchy)
- atomic_add(delta, &root_mem_cgroup->children_in_excess);
spin_unlock(&memcg->soft_lock);
}
@@ -6112,9 +6106,6 @@ static void mem_cgroup_css_offline(struct cgroup_subsys_state *css)
if (memcg->soft_contributed) {
while ((memcg = parent_mem_cgroup(memcg)))
atomic_dec(&memcg->children_in_excess);
-
- if (memcg != root_mem_cgroup && !root_mem_cgroup->use_hierarchy)
- atomic_dec(&root_mem_cgroup->children_in_excess);
}
mem_cgroup_destroy_all_caches(memcg);
vmpressure_cleanup(&memcg->vmpressure);