All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [RFC][-mm] [2/2] Simple stats for memory resource controller
@ 2008-03-26 18:18 Balaji Rao
  2008-03-26 18:52 ` Paul Menage
  2008-03-26 18:54 ` Balbir Singh
  0 siblings, 2 replies; 13+ messages in thread
From: Balaji Rao @ 2008-03-26 18:18 UTC (permalink / raw
  To: linux-kernel; +Cc: containers, menage, balbir, dhaval

This patch implements trivial statistics for the memory resource controller.

Signed-off-by: Balaji Rao <balajirrao@gmail.com>
CC: Balbir Singh <balbir@linux.vnet.ibm.com>
CC: Dhaval Giani <dhaval@linux.vnet.ibm.com>


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,

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [RFC][-mm] [2/2] Simple stats for memory resource controller
  2008-03-26 18:18 Balaji Rao
@ 2008-03-26 18:52 ` Paul Menage
  2008-03-26 18:53   ` Balbir Singh
  2008-03-26 18:54 ` Balbir Singh
  1 sibling, 1 reply; 13+ messages in thread
From: Paul Menage @ 2008-03-26 18:52 UTC (permalink / raw
  To: Balaji Rao; +Cc: linux-kernel, containers, balbir, dhaval

On Wed, Mar 26, 2008 at 11:18 AM, Balaji Rao <balajirrao@gmail.com> wrote:
>         [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, },
>   };
>

Should these be called "pgpgin" and "pgpgout" for consistency with /proc/vmstat?

Paul

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC][-mm] [2/2] Simple stats for memory resource controller
  2008-03-26 18:52 ` Paul Menage
@ 2008-03-26 18:53   ` Balbir Singh
  0 siblings, 0 replies; 13+ messages in thread
From: Balbir Singh @ 2008-03-26 18:53 UTC (permalink / raw
  To: Paul Menage; +Cc: Balaji Rao, linux-kernel, containers, balbir, dhaval

Paul Menage wrote:
> On Wed, Mar 26, 2008 at 11:18 AM, Balaji Rao <balajirrao@gmail.com> wrote:
>>         [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, },
>>   };
>>
> 
> Should these be called "pgpgin" and "pgpgout" for consistency with /proc/vmstat?
> 
> Paul

Yes, that is a good name. We also want to instantaneous metrics like
page_in_count per second and page_out_count per second to help the administrator
monitor what is going on within the tasks in the cgroup w.r.t. memory.


-- 
	Warm Regards,
	Balbir Singh
	Linux Technology Center
	IBM, ISTL

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC][-mm] [2/2] Simple stats for memory resource controller
  2008-03-26 18:18 Balaji Rao
  2008-03-26 18:52 ` Paul Menage
@ 2008-03-26 18:54 ` Balbir Singh
  1 sibling, 0 replies; 13+ messages in thread
From: Balbir Singh @ 2008-03-26 18:54 UTC (permalink / raw
  To: Balaji Rao; +Cc: linux-kernel, containers, menage, balbir, dhaval

Balaji Rao wrote:
> This patch implements trivial statistics for the memory resource controller.
> 
> Signed-off-by: Balaji Rao <balajirrao@gmail.com>
> CC: Balbir Singh <balbir@linux.vnet.ibm.com>
> CC: Dhaval Giani <dhaval@linux.vnet.ibm.com>
> 
> 
> 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,

Looks simple and nice. Please see Paul's mail on the suggested name change as well

Acked-by:  Balbir Singh <balbir@linux.vnet.ibm.com>


-- 
	Warm Regards,
	Balbir Singh
	Linux Technology Center
	IBM, ISTL

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [RFC][-mm] [2/2] Simple stats for memory resource controller
@ 2008-04-05 18:10 Balaji Rao
  2008-04-06  6:23 ` Balbir Singh
  2008-04-14 14:39 ` Balbir Singh
  0 siblings, 2 replies; 13+ messages in thread
From: Balaji Rao @ 2008-04-05 18:10 UTC (permalink / raw
  To: linux-kernel; +Cc: containers, menage, balbir, dhaval

This patch implements trivial statistics for the memory resource controller.

Signed-off-by: Balaji Rao <balajirrao@gmail.com>
CC: Balbir Singh <balbir@linux.vnet.ibm.com>
CC: Dhaval Giani <dhaval@linux.vnet.ibm.com>

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,

-- 
regards,
Balaji Rao
Dept. of Mechanical Engineering,
National Institute of Technology Karnataka, India

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [RFC][-mm] [2/2] Simple stats for memory resource controller
  2008-04-05 18:10 [RFC][-mm] [2/2] Simple stats for memory resource controller Balaji Rao
@ 2008-04-06  6:23 ` Balbir Singh
  2008-04-14 14:39 ` Balbir Singh
  1 sibling, 0 replies; 13+ messages in thread
From: Balbir Singh @ 2008-04-06  6:23 UTC (permalink / raw
  To: Balaji Rao; +Cc: linux-kernel, containers, menage, balbir, dhaval

Balaji Rao wrote:
> This patch implements trivial statistics for the memory resource controller.
> 
> Signed-off-by: Balaji Rao <balajirrao@gmail.com>
> CC: Balbir Singh <balbir@linux.vnet.ibm.com>
> CC: Dhaval Giani <dhaval@linux.vnet.ibm.com>
> 
> 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 <balbir@linux.vnet.ibm.com>

Let me test this patch right away.

-- 
	Warm Regards,
	Balbir Singh
	Linux Technology Center
	IBM, ISTL

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC][-mm] [2/2] Simple stats for memory resource controller
  2008-04-05 18:10 [RFC][-mm] [2/2] Simple stats for memory resource controller Balaji Rao
  2008-04-06  6:23 ` Balbir Singh
@ 2008-04-14 14:39 ` Balbir Singh
  2008-04-14 14:40   ` Balbir Singh
  2008-04-28 16:00   ` Balaji Rao
  1 sibling, 2 replies; 13+ messages in thread
From: Balbir Singh @ 2008-04-14 14:39 UTC (permalink / raw
  To: Balaji Rao; +Cc: linux-kernel, containers, menage, balbir, dhaval

Balaji Rao wrote:
> This patch implements trivial statistics for the memory resource controller.
> 
> Signed-off-by: Balaji Rao <balajirrao@gmail.com>
> CC: Balbir Singh <balbir@linux.vnet.ibm.com>
> CC: Dhaval Giani <dhaval@linux.vnet.ibm.com>
> 
> 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,
> 

Acked-by: Balbir Singh <balbir@linux.vnet.ibm.com>

Hi, Andrew,

Could you please include these statistics in -mm.

Balbir


-- 
	Warm Regards,
	Balbir Singh
	Linux Technology Center
	IBM, ISTL

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC][-mm] [2/2] Simple stats for memory resource controller
  2008-04-14 14:39 ` Balbir Singh
@ 2008-04-14 14:40   ` Balbir Singh
  2008-04-28 16:00   ` Balaji Rao
  1 sibling, 0 replies; 13+ messages in thread
From: Balbir Singh @ 2008-04-14 14:40 UTC (permalink / raw
  To: Andrew Morton
  Cc: Balaji Rao, linux-kernel, containers, menage, balbir, dhaval

Balbir Singh wrote:
> Balaji Rao wrote:
>> This patch implements trivial statistics for the memory resource controller.
>>
>> Signed-off-by: Balaji Rao <balajirrao@gmail.com>
>> CC: Balbir Singh <balbir@linux.vnet.ibm.com>
>> CC: Dhaval Giani <dhaval@linux.vnet.ibm.com>
>>
>> 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,
>>
> 
> Acked-by: Balbir Singh <balbir@linux.vnet.ibm.com>
> 
> Hi, Andrew,
> 
> Could you please include these statistics in -mm.
> 
> Balbir
> 
> 

Andrew,

This should have been addressed to you in the first place. Resending.

-- 
	Warm Regards,
	Balbir Singh
	Linux Technology Center
	IBM, ISTL

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC][-mm] [2/2] Simple stats for memory resource controller
  2008-04-14 14:39 ` Balbir Singh
  2008-04-14 14:40   ` Balbir Singh
@ 2008-04-28 16:00   ` Balaji Rao
  2008-04-28 16:40       ` Andrew Morton
  1 sibling, 1 reply; 13+ messages in thread
From: Balaji Rao @ 2008-04-28 16:00 UTC (permalink / raw
  To: Andrew Morton; +Cc: linux-kernel, containers, menage, balbir, dhaval

On Monday 14 April 2008 08:09:48 pm Balbir Singh wrote:
> Balaji Rao wrote:
> > This patch implements trivial statistics for the memory resource controller.
> > 
> > Signed-off-by: Balaji Rao <balajirrao@gmail.com>
> > CC: Balbir Singh <balbir@linux.vnet.ibm.com>
> > CC: Dhaval Giani <dhaval@linux.vnet.ibm.com>
> > 
> > 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,
> > 
> 
> Acked-by: Balbir Singh <balbir@linux.vnet.ibm.com>
> 
> Hi, Andrew,
> 
> Could you please include these statistics in -mm.
> 
> Balbir
> 
> 
Hi Andrew,

Now that Balbir Singh has ACKed it, could you please include it in -mm ?

-- 
Warm Regards,

Balaji Rao
Dept. of Mechanical Engineering
NITK

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC][-mm] [2/2] Simple stats for memory resource controller
@ 2008-04-28 16:40       ` Andrew Morton
  0 siblings, 0 replies; 13+ messages in thread
From: Andrew Morton @ 2008-04-28 16:40 UTC (permalink / raw
  To: Balaji Rao; +Cc: linux-kernel, containers, menage, balbir, dhaval

On Mon, 28 Apr 2008 21:30:29 +0530 Balaji Rao <balajirrao@gmail.com> wrote:

> On Monday 14 April 2008 08:09:48 pm Balbir Singh wrote:
> > Balaji Rao wrote:
> > > This patch implements trivial statistics for the memory resource controller.
> > > 
> > > Signed-off-by: Balaji Rao <balajirrao@gmail.com>
> > > CC: Balbir Singh <balbir@linux.vnet.ibm.com>
> > > CC: Dhaval Giani <dhaval@linux.vnet.ibm.com>
> > > 
> > > 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,
> > > 
> > 
> > Acked-by: Balbir Singh <balbir@linux.vnet.ibm.com>
> > 
> > Hi, Andrew,
> > 
> > Could you please include these statistics in -mm.
> > 
> > Balbir
> > 
> > 
> Hi Andrew,
> 
> Now that Balbir Singh has ACKed it, could you please include it in -mm ?

<looks>

I guess we can add this one, sure.  But [patch 1/2] needs work.

- The local_irq_save()-around-for_each_possible_cpu() locking doesn't
  make sense.

- indenting is busted in account_user_time() and account_system_time()

- The use of for_each_possible_cpu() can be grossly inefficient.  It
  would be preferred to use for_each_possible_cpu() and add a cpu-hotplug
  notifier.

- The proposed newly-added userspace interfaces are undocumented

- The changelogs don't explain why we might want this feature in Linux.

- Generally: there are a heck of a lot of different ways of accounting
  for things in core kernel and it's really sad to see yet another one
  being added.


Actually, [patch 2/2] adds new kerenl->user interfaces and doesn't document
them.  But afaict the existing memcgroup stats are secret too.


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC][-mm] [2/2] Simple stats for memory resource controller
@ 2008-04-28 16:40       ` Andrew Morton
  0 siblings, 0 replies; 13+ messages in thread
From: Andrew Morton @ 2008-04-28 16:40 UTC (permalink / raw
  To: Balaji Rao
  Cc: containers-qjLDD68F18O7TbgM5vRIOg, menage-hpIqsD4AKlfQT0dZR+AlfA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	dhaval-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8

On Mon, 28 Apr 2008 21:30:29 +0530 Balaji Rao <balajirrao-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:

> On Monday 14 April 2008 08:09:48 pm Balbir Singh wrote:
> > Balaji Rao wrote:
> > > This patch implements trivial statistics for the memory resource controller.
> > > 
> > > Signed-off-by: Balaji Rao <balajirrao-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> > > CC: Balbir Singh <balbir-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
> > > CC: Dhaval Giani <dhaval-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
> > > 
> > > 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,
> > > 
> > 
> > Acked-by: Balbir Singh <balbir-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
> > 
> > Hi, Andrew,
> > 
> > Could you please include these statistics in -mm.
> > 
> > Balbir
> > 
> > 
> Hi Andrew,
> 
> Now that Balbir Singh has ACKed it, could you please include it in -mm ?

<looks>

I guess we can add this one, sure.  But [patch 1/2] needs work.

- The local_irq_save()-around-for_each_possible_cpu() locking doesn't
  make sense.

- indenting is busted in account_user_time() and account_system_time()

- The use of for_each_possible_cpu() can be grossly inefficient.  It
  would be preferred to use for_each_possible_cpu() and add a cpu-hotplug
  notifier.

- The proposed newly-added userspace interfaces are undocumented

- The changelogs don't explain why we might want this feature in Linux.

- Generally: there are a heck of a lot of different ways of accounting
  for things in core kernel and it's really sad to see yet another one
  being added.


Actually, [patch 2/2] adds new kerenl->user interfaces and doesn't document
them.  But afaict the existing memcgroup stats are secret too.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC][-mm] [2/2] Simple stats for memory resource controller
  2008-04-28 16:40       ` Andrew Morton
  (?)
@ 2008-04-28 18:03       ` Balbir Singh
  2008-04-29  5:42         ` KAMEZAWA Hiroyuki
  -1 siblings, 1 reply; 13+ messages in thread
From: Balbir Singh @ 2008-04-28 18:03 UTC (permalink / raw
  To: Andrew Morton
  Cc: Balaji Rao, linux-kernel, containers, menage, balbir, dhaval

Andrew Morton wrote:
> On Mon, 28 Apr 2008 21:30:29 +0530 Balaji Rao <balajirrao@gmail.com> wrote:
> 
>> On Monday 14 April 2008 08:09:48 pm Balbir Singh wrote:
>>> Balaji Rao wrote:
>>>> This patch implements trivial statistics for the memory resource controller.
>>>>
>>>> Signed-off-by: Balaji Rao <balajirrao@gmail.com>
>>>> CC: Balbir Singh <balbir@linux.vnet.ibm.com>
>>>> CC: Dhaval Giani <dhaval@linux.vnet.ibm.com>
>>>>
>>>> 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,
>>>>
>>> Acked-by: Balbir Singh <balbir@linux.vnet.ibm.com>
>>>
>>> Hi, Andrew,
>>>
>>> Could you please include these statistics in -mm.
>>>
>>> Balbir
>>>
>>>
>> Hi Andrew,
>>
>> Now that Balbir Singh has ACKed it, could you please include it in -mm ?
> 
> <looks>
> 
> I guess we can add this one, sure.  But [patch 1/2] needs work.
> 
> - The local_irq_save()-around-for_each_possible_cpu() locking doesn't
>   make sense.
> 

Yes, that needs re-work. Peter Zijlstra had detailed review comments for the patch

> - indenting is busted in account_user_time() and account_system_time()
> 
> - The use of for_each_possible_cpu() can be grossly inefficient.  It
>   would be preferred to use for_each_possible_cpu() and add a cpu-hotplug
>   notifier.
> 
> - The proposed newly-added userspace interfaces are undocumented
> 

Yes, we need more documentation

> - The changelogs don't explain why we might want this feature in Linux.
> 

We need more accurate utime/stime per cgroup. Summing them in user space is
insufficient, since tasks can move across groups and what we have is accumulated
time per task.

> - Generally: there are a heck of a lot of different ways of accounting
>   for things in core kernel and it's really sad to see yet another one
>   being added.
> 

We thought of summing up stuff in user space, we've look harder. The plan is to
finally send all the data using cgroupstats.

> 
> Actually, [patch 2/2] adds new kerenl->user interfaces and doesn't document
> them.  But afaict the existing memcgroup stats are secret too.
> 

The statistics was added as a part of git commit
d52aa412d43827033a8e2ce4415ef6e8f8d53635. I'll go ahead and try to document
them. These patches piggy back on the statistics patches and add pagein/pageout
counts, which is a useful statistic for the memory controller.



-- 
	Warm Regards,
	Balbir Singh
	Linux Technology Center
	IBM, ISTL

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC][-mm] [2/2] Simple stats for memory resource controller
  2008-04-28 18:03       ` Balbir Singh
@ 2008-04-29  5:42         ` KAMEZAWA Hiroyuki
  0 siblings, 0 replies; 13+ messages in thread
From: KAMEZAWA Hiroyuki @ 2008-04-29  5:42 UTC (permalink / raw
  To: balbir; +Cc: Andrew Morton, dhaval, linux-kernel, containers, menage,
	Balaji Rao

On Mon, 28 Apr 2008 23:33:05 +0530
Balbir Singh <balbir@linux.vnet.ibm.com> wrote:

> The statistics was added as a part of git commit
> d52aa412d43827033a8e2ce4415ef6e8f8d53635. I'll go ahead and try to document
> them. These patches piggy back on the statistics patches and add pagein/pageout
> counts, which is a useful statistic for the memory controller.
> 
I'm sorry for lack of documentation.
BTW, when you adds documentation on this pagein/pageout, please make it clear

1. pagein means a new page is newly acconted to this cgrop, doesn't means
   a page is read from disk.
2. pageout means a page is dropped from this cgroup, doesn't means a page
   is written into disk.

So, pagein/pageout is a bit ambiguous. I'm happy if you find better names.


Thanks,
-Kame


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2008-04-29  5:37 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-05 18:10 [RFC][-mm] [2/2] Simple stats for memory resource controller Balaji Rao
2008-04-06  6:23 ` Balbir Singh
2008-04-14 14:39 ` Balbir Singh
2008-04-14 14:40   ` Balbir Singh
2008-04-28 16:00   ` Balaji Rao
2008-04-28 16:40     ` Andrew Morton
2008-04-28 16:40       ` Andrew Morton
2008-04-28 18:03       ` Balbir Singh
2008-04-29  5:42         ` KAMEZAWA Hiroyuki
  -- strict thread matches above, loose matches on Subject: below --
2008-03-26 18:18 Balaji Rao
2008-03-26 18:52 ` Paul Menage
2008-03-26 18:53   ` Balbir Singh
2008-03-26 18:54 ` Balbir Singh

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.