From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755547AbYDFGZJ (ORCPT ); Sun, 6 Apr 2008 02:25:09 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754190AbYDFGYz (ORCPT ); Sun, 6 Apr 2008 02:24:55 -0400 Received: from e28smtp05.in.ibm.com ([59.145.155.5]:49078 "EHLO e28smtp05.in.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753537AbYDFGYj (ORCPT ); Sun, 6 Apr 2008 02:24:39 -0400 Message-ID: <47F86C69.70609@linux.vnet.ibm.com> Date: Sun, 06 Apr 2008 11:53:37 +0530 From: Balbir Singh Reply-To: balbir@linux.vnet.ibm.com Organization: IBM User-Agent: Thunderbird 2.0.0.12 (X11/20080226) MIME-Version: 1.0 To: Balaji Rao CC: linux-kernel@vger.kernel.org, containers@lists.osdl.org, menage@google.com, balbir@in.ibm.com, dhaval@linux.vnet.ibm.com Subject: Re: [RFC][-mm] [2/2] Simple stats for memory resource controller References: <200804052340.02386.balajirrao@gmail.com> In-Reply-To: <200804052340.02386.balajirrao@gmail.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Balaji Rao wrote: > This patch implements trivial statistics for the memory resource controller. > > Signed-off-by: Balaji Rao > CC: Balbir Singh > CC: Dhaval Giani > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index a860765..ca98b21 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -47,6 +47,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_PGPGIN_COUNT, /* # of pages paged in */ > + MEM_CGROUP_STAT_PGPGOUT_COUNT, /* # of pages paged out */ > > MEM_CGROUP_STAT_NSTATS, > }; > @@ -198,6 +200,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_PGPGIN_COUNT, 1); > + else > + __mem_cgroup_stat_add_safe(stat, > + MEM_CGROUP_STAT_PGPGOUT_COUNT, 1); > } > > static struct mem_cgroup_per_zone * > @@ -897,6 +906,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_PGPGIN_COUNT] = {"pgpgin", 1, }, > + [MEM_CGROUP_STAT_PGPGOUT_COUNT] = {"pgpgout", 1, }, > }; > > static int mem_control_stat_show(struct cgroup *cont, struct cftype *cft, > Looks good to me. I wonder if pgpin/pggout per second will be a useful metric, to see how fast things are changing within the cgroup. Acked-by: Balbir Singh Let me test this patch right away. -- Warm Regards, Balbir Singh Linux Technology Center IBM, ISTL