cgroup's resource has "failure" counter. But I think memory cgroup
has 2 types of failure
        - failure of cache
        - failure of RSS

This patch adds above 2 information to stat file.
Above information is shown in "byte". But I wonder showing just counter
is better o not...rather than PAGE_SIZE.

Signed-off-by: KAMEZAWA Hiroyuki <[EMAIL PROTECTED]>


 mm/memcontrol.c |   13 +++++++++++++
 1 file changed, 13 insertions(+)

Index: devel-2.6.23-mm1/mm/memcontrol.c
===================================================================
--- devel-2.6.23-mm1.orig/mm/memcontrol.c
+++ devel-2.6.23-mm1/mm/memcontrol.c
@@ -50,6 +50,11 @@ enum mem_cgroup_stat_index {
         */
        MEM_CGROUP_STAT_ACTIVE,    /* # of pages in active list */
        MEM_CGROUP_STAT_INACTIVE,  /* # of pages on inactive list */
+       /*
+        * precise failcnt
+        */
+       MEM_CGROUP_STAT_FAIL_RSS,  /* # of failure in RSS charging */
+       MEM_CGROUP_STAT_FAIL_CACHE,/* # of failure in CACHE charging */
 
        MEM_CGROUP_STAT_NSTATS,
 };
@@ -486,6 +491,12 @@ retry:
         */
        while (res_counter_charge(&mem->res, PAGE_SIZE)) {
                bool is_atomic = gfp_mask & GFP_ATOMIC;
+               if (is_cache)
+                       mem_cgroup_stat_inc(&mem->stat,
+                               MEM_CGROUP_STAT_FAIL_CACHE);
+               else
+                       mem_cgroup_stat_inc(&mem->stat,
+                               MEM_CGROUP_STAT_FAIL_RSS);
                /*
                 * We cannot reclaim under GFP_ATOMIC, fail the charge
                 */
@@ -850,6 +861,8 @@ static const struct mem_cgroup_stat_desc
        [MEM_CGROUP_STAT_RSS] = { "rss", PAGE_SIZE, },
        [MEM_CGROUP_STAT_ACTIVE] = { "active", PAGE_SIZE, },
        [MEM_CGROUP_STAT_INACTIVE] = { "inactive", PAGE_SIZE, },
+       [MEM_CGROUP_STAT_FAIL_RSS] = { "rss_failure", PAGE_SIZE, },
+       [MEM_CGROUP_STAT_FAIL_CACHE] = { "cache_failure", PAGE_SIZE, },
 };
 
 static int mem_control_stat_show(struct seq_file *m, void *arg)

_______________________________________________
Containers mailing list
[EMAIL PROTECTED]
https://lists.linux-foundation.org/mailman/listinfo/containers

_______________________________________________
Devel mailing list
[email protected]
https://openvz.org/mailman/listinfo/devel

Reply via email to