[PATCH RFC] mm/memcg: calculate max hierarchy limit number instead of min

From: Wanpeng Li
Date: Wed Jul 11 2012 - 09:25:08 EST


From: Wanpeng Li <liwp@xxxxxxxxxxxxxxxxxx>

Since hierachical_memory_limit shows "of bytes of memory limit with
regard to hierarchy under which the memory cgroup is", the count should
calculate max hierarchy limit when use_hierarchy in order to show hierarchy
subtree limit. hierachical_memsw_limit is the same case.

Signed-off-by: Wanpeng Li <liwp.linux@xxxxxxxxx>
---
mm/memcontrol.c | 14 +++++++-------
1 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index 69a7d45..6392c0a 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -3929,10 +3929,10 @@ static void memcg_get_hierarchical_limit(struct mem_cgroup *memcg,
unsigned long long *mem_limit, unsigned long long *memsw_limit)
{
struct cgroup *cgroup;
- unsigned long long min_limit, min_memsw_limit, tmp;
+ unsigned long long max_limit, max_memsw_limit, tmp;

- min_limit = res_counter_read_u64(&memcg->res, RES_LIMIT);
- min_memsw_limit = res_counter_read_u64(&memcg->memsw, RES_LIMIT);
+ max_limit = res_counter_read_u64(&memcg->res, RES_LIMIT);
+ max_memsw_limit = res_counter_read_u64(&memcg->memsw, RES_LIMIT);
cgroup = memcg->css.cgroup;
if (!memcg->use_hierarchy)
goto out;
@@ -3943,13 +3943,13 @@ static void memcg_get_hierarchical_limit(struct mem_cgroup *memcg,
if (!memcg->use_hierarchy)
break;
tmp = res_counter_read_u64(&memcg->res, RES_LIMIT);
- min_limit = min(min_limit, tmp);
+ max_limit = max(max_limit, tmp);
tmp = res_counter_read_u64(&memcg->memsw, RES_LIMIT);
- min_memsw_limit = min(min_memsw_limit, tmp);
+ max_memsw_limit = max(max_memsw_limit, tmp);
}
out:
- *mem_limit = min_limit;
- *memsw_limit = min_memsw_limit;
+ *mem_limit = max_limit;
+ *memsw_limit = max_memsw_limit;
}

static int mem_cgroup_reset(struct cgroup *cont, unsigned int event)
--
1.7.5.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/