aboutsummaryrefslogtreecommitdiffstats
path: root/mm/memcontrol.c
diff options
context:
space:
mode:
authorAndrew Morton <akpm@linux-foundation.org>2013-09-24 18:27:34 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2013-09-24 20:00:25 -0400
commit8f939a9f4c769500c58c31ec81ce17297388f4bf (patch)
tree987c5be7dbce3a941bc8f1a7d546b125de8b40bd /mm/memcontrol.c
parent20ba27f52eded4d14e309ac57971c9c83dec46e4 (diff)
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/memcontrol.c')
-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)
851 /* 851 /*
852 * Necessary to update all ancestors when hierarchy is used 852 * Necessary to update all ancestors when hierarchy is used
853 * because their event counter is not touched. 853 * because their event counter is not touched.
854 * We track children even outside the hierarchy for the root
855 * cgroup because tree walk starting at root should visit
856 * all cgroups and we want to prevent from pointless tree
857 * walk if no children is below the limit.
858 */ 854 */
859 while (delta && (parent = parent_mem_cgroup(parent))) 855 while (delta && (parent = parent_mem_cgroup(parent)))
860 atomic_add(delta, &parent->children_in_excess); 856 atomic_add(delta, &parent->children_in_excess);
861 if (memcg != root_mem_cgroup && !root_mem_cgroup->use_hierarchy)
862 atomic_add(delta, &root_mem_cgroup->children_in_excess);
863 spin_unlock(&memcg->soft_lock); 857 spin_unlock(&memcg->soft_lock);
864} 858}
865 859
@@ -6112,9 +6106,6 @@ static void mem_cgroup_css_offline(struct cgroup_subsys_state *css)
6112 if (memcg->soft_contributed) { 6106 if (memcg->soft_contributed) {
6113 while ((memcg = parent_mem_cgroup(memcg))) 6107 while ((memcg = parent_mem_cgroup(memcg)))
6114 atomic_dec(&memcg->children_in_excess); 6108 atomic_dec(&memcg->children_in_excess);
6115
6116 if (memcg != root_mem_cgroup && !root_mem_cgroup->use_hierarchy)
6117 atomic_dec(&root_mem_cgroup->children_in_excess);
6118 } 6109 }
6119 mem_cgroup_destroy_all_caches(memcg); 6110 mem_cgroup_destroy_all_caches(memcg);
6120 vmpressure_cleanup(&memcg->vmpressure); 6111 vmpressure_cleanup(&memcg->vmpressure);