[RFC][-mm] [2/2] Simple stats for memory resource controller

From: Balaji Rao
Date: Wed Mar 26 2008 - 14:25:41 EST


This patch implements trivial statistics for the memory resource controller.

Signed-off-by: Balaji Rao <balajirrao@xxxxxxxxx>
CC: Balbir Singh <balbir@xxxxxxxxxxxxxxxxxx>
CC: Dhaval Giani <dhaval@xxxxxxxxxxxxxxxxxx>


diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index eb681a6..84f3fe5 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -45,6 +45,8 @@ enum mem_cgroup_stat_index {
*/
MEM_CGROUP_STAT_CACHE, /* # of pages charged as cache */
MEM_CGROUP_STAT_RSS, /* # of pages charged as rss */
+ MEM_CGROUP_STAT_PGIN_COUNT, /* # of pages paged in */
+ MEM_CGROUP_STAT_PGOUT_COUNT, /* # of pages paged out */

MEM_CGROUP_STAT_NSTATS,
};
@@ -196,6 +198,13 @@ static void mem_cgroup_charge_statistics(struct mem_cgroup *mem, int flags,
__mem_cgroup_stat_add_safe(stat, MEM_CGROUP_STAT_CACHE, val);
else
__mem_cgroup_stat_add_safe(stat, MEM_CGROUP_STAT_RSS, val);
+
+ if (charge)
+ __mem_cgroup_stat_add_safe(stat,
+ MEM_CGROUP_STAT_PGIN_COUNT, 1);
+ else
+ __mem_cgroup_stat_add_safe(stat,
+ MEM_CGROUP_STAT_PGOUT_COUNT, 1);
}

static struct mem_cgroup_per_zone *
@@ -886,6 +895,8 @@ static const struct mem_cgroup_stat_desc {
} mem_cgroup_stat_desc[] = {
[MEM_CGROUP_STAT_CACHE] = { "cache", PAGE_SIZE, },
[MEM_CGROUP_STAT_RSS] = { "rss", PAGE_SIZE, },
+ [MEM_CGROUP_STAT_PGIN_COUNT] = {"page_in_count", 1, },
+ [MEM_CGROUP_STAT_PGOUT_COUNT] = {"page_out_count", 1, },
};

static int mem_control_stat_show(struct cgroup *cont, struct cftype *cft,
--
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/