All of lore.kernel.org
 help / color / mirror / Atom feed
From: Glauber Costa <glommer@parallels.com>
To: "Kirill A. Shutemov" <kirill@shutemov.name>
Cc: <linux-kernel@vger.kernel.org>, <paul@paulmenage.org>,
	<lizf@cn.fujitsu.com>, <kamezawa.hiroyu@jp.fujitsu.com>,
	<ebiederm@xmission.com>, <davem@davemloft.net>,
	<gthelen@google.com>, <netdev@vger.kernel.org>,
	<linux-mm@kvack.org>
Subject: Re: [PATCH v2 1/7] Basic kernel memory functionality for the Memory Controller
Date: Sun, 18 Sep 2011 00:39:12 -0300	[thread overview]
Message-ID: <4E7567E0.9010401@parallels.com> (raw)
In-Reply-To: <20110917174535.GA1658@shutemov.name>


>>   	struct mem_cgroup_stat_cpu *stat;
>> @@ -391,6 +404,7 @@ enum charge_type {
>>   #define _MEM			(0)
>>   #define _MEMSWAP		(1)
>>   #define _OOM_TYPE		(2)
>> +#define _KMEM			(3)
>
> Ditto. Can we use enum instead?
Yes we can (tm)

>>   	if (!mem_cgroup_is_root(mem)) {
>>   		if (!swap)
>> -			return res_counter_read_u64(&mem->res, RES_USAGE);
>> +			kmem += res_counter_read_u64(&mem->res, RES_USAGE);
>>   		else
>> -			return res_counter_read_u64(&mem->memsw, RES_USAGE);
>> +			kmem += res_counter_read_u64(&mem->memsw, RES_USAGE);
>> +
>> +		return kmem;
>>   	}
>>
>>   	val = mem_cgroup_recursive_stat(mem, MEM_CGROUP_STAT_CACHE);
>
> No kernel memory accounting for root cgroup, right?
Not sure. Maybe kernel memory accounting is useful even for root cgroup. 
Same as normal memory accounting... what we want to avoid is kernel 
memory limits. OTOH, if we are not limiting it anyway, accounting it is 
just useless overhead... Even the statistics can then be gathered 
through all
the proc files that show slab usage, I guess?

>
>> @@ -3979,6 +3999,10 @@ static u64 mem_cgroup_read(struct cgroup *cont, struct cftype *cft)
>>   		else
>>   			val = res_counter_read_u64(&mem->memsw, name);
>>   		break;
>> +	case _KMEM:
>> +		val = res_counter_read_u64(&mem->kmem, name);
>> +		break;
>> +
>
> Always zero in root cgroup?

Yes, if we're not accounting, it should be zero. WARN_ON, maybe?

WARNING: multiple messages have this Message-ID (diff)
From: Glauber Costa <glommer@parallels.com>
To: "Kirill A. Shutemov" <kirill@shutemov.name>
Cc: <linux-kernel@vger.kernel.org>, <paul@paulmenage.org>,
	<lizf@cn.fujitsu.com>, <kamezawa.hiroyu@jp.fujitsu.com>,
	<ebiederm@xmission.com>, <davem@davemloft.net>,
	<gthelen@google.com>, <netdev@vger.kernel.org>,
	<linux-mm@kvack.org>
Subject: Re: [PATCH v2 1/7] Basic kernel memory functionality for the Memory Controller
Date: Sun, 18 Sep 2011 00:39:12 -0300	[thread overview]
Message-ID: <4E7567E0.9010401@parallels.com> (raw)
In-Reply-To: <20110917174535.GA1658@shutemov.name>


>>   	struct mem_cgroup_stat_cpu *stat;
>> @@ -391,6 +404,7 @@ enum charge_type {
>>   #define _MEM			(0)
>>   #define _MEMSWAP		(1)
>>   #define _OOM_TYPE		(2)
>> +#define _KMEM			(3)
>
> Ditto. Can we use enum instead?
Yes we can (tm)

>>   	if (!mem_cgroup_is_root(mem)) {
>>   		if (!swap)
>> -			return res_counter_read_u64(&mem->res, RES_USAGE);
>> +			kmem += res_counter_read_u64(&mem->res, RES_USAGE);
>>   		else
>> -			return res_counter_read_u64(&mem->memsw, RES_USAGE);
>> +			kmem += res_counter_read_u64(&mem->memsw, RES_USAGE);
>> +
>> +		return kmem;
>>   	}
>>
>>   	val = mem_cgroup_recursive_stat(mem, MEM_CGROUP_STAT_CACHE);
>
> No kernel memory accounting for root cgroup, right?
Not sure. Maybe kernel memory accounting is useful even for root cgroup. 
Same as normal memory accounting... what we want to avoid is kernel 
memory limits. OTOH, if we are not limiting it anyway, accounting it is 
just useless overhead... Even the statistics can then be gathered 
through all
the proc files that show slab usage, I guess?

>
>> @@ -3979,6 +3999,10 @@ static u64 mem_cgroup_read(struct cgroup *cont, struct cftype *cft)
>>   		else
>>   			val = res_counter_read_u64(&mem->memsw, name);
>>   		break;
>> +	case _KMEM:
>> +		val = res_counter_read_u64(&mem->kmem, name);
>> +		break;
>> +
>
> Always zero in root cgroup?

Yes, if we're not accounting, it should be zero. WARN_ON, maybe?

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

WARNING: multiple messages have this Message-ID (diff)
From: Glauber Costa <glommer@parallels.com>
To: "Kirill A. Shutemov" <kirill@shutemov.name>
Cc: linux-kernel@vger.kernel.org, paul@paulmenage.org,
	lizf@cn.fujitsu.com, kamezawa.hiroyu@jp.fujitsu.com,
	ebiederm@xmission.com, davem@davemloft.net, gthelen@google.com,
	netdev@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH v2 1/7] Basic kernel memory functionality for the Memory Controller
Date: Sun, 18 Sep 2011 00:39:12 -0300	[thread overview]
Message-ID: <4E7567E0.9010401@parallels.com> (raw)
In-Reply-To: <20110917174535.GA1658@shutemov.name>


>>   	struct mem_cgroup_stat_cpu *stat;
>> @@ -391,6 +404,7 @@ enum charge_type {
>>   #define _MEM			(0)
>>   #define _MEMSWAP		(1)
>>   #define _OOM_TYPE		(2)
>> +#define _KMEM			(3)
>
> Ditto. Can we use enum instead?
Yes we can (tm)

>>   	if (!mem_cgroup_is_root(mem)) {
>>   		if (!swap)
>> -			return res_counter_read_u64(&mem->res, RES_USAGE);
>> +			kmem += res_counter_read_u64(&mem->res, RES_USAGE);
>>   		else
>> -			return res_counter_read_u64(&mem->memsw, RES_USAGE);
>> +			kmem += res_counter_read_u64(&mem->memsw, RES_USAGE);
>> +
>> +		return kmem;
>>   	}
>>
>>   	val = mem_cgroup_recursive_stat(mem, MEM_CGROUP_STAT_CACHE);
>
> No kernel memory accounting for root cgroup, right?
Not sure. Maybe kernel memory accounting is useful even for root cgroup. 
Same as normal memory accounting... what we want to avoid is kernel 
memory limits. OTOH, if we are not limiting it anyway, accounting it is 
just useless overhead... Even the statistics can then be gathered 
through all
the proc files that show slab usage, I guess?

>
>> @@ -3979,6 +3999,10 @@ static u64 mem_cgroup_read(struct cgroup *cont, struct cftype *cft)
>>   		else
>>   			val = res_counter_read_u64(&mem->memsw, name);
>>   		break;
>> +	case _KMEM:
>> +		val = res_counter_read_u64(&mem->kmem, name);
>> +		break;
>> +
>
> Always zero in root cgroup?

Yes, if we're not accounting, it should be zero. WARN_ON, maybe?

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2011-09-18  3:39 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-15  1:46 [PATCH v2 0/7] per-cgroup tcp buffer pressure settings Glauber Costa
2011-09-15  1:46 ` Glauber Costa
2011-09-15  1:46 ` [PATCH v2 1/7] Basic kernel memory functionality for the Memory Controller Glauber Costa
2011-09-15  1:46   ` Glauber Costa
2011-09-17 17:45   ` Kirill A. Shutemov
2011-09-17 17:45     ` Kirill A. Shutemov
2011-09-18  3:39     ` Glauber Costa [this message]
2011-09-18  3:39       ` Glauber Costa
2011-09-18  3:39       ` Glauber Costa
2011-09-18 19:05       ` Kirill A. Shutemov
2011-09-18 19:05         ` Kirill A. Shutemov
2011-09-18 19:11         ` Glauber Costa
2011-09-18 19:11           ` Glauber Costa
2011-09-18 19:11           ` Glauber Costa
2011-09-18 20:39           ` Kirill A. Shutemov
2011-09-18 20:39             ` Kirill A. Shutemov
2011-09-18 20:40             ` Glauber Costa
2011-09-18 20:40               ` Glauber Costa
2011-09-18 20:40               ` Glauber Costa
2011-09-18 20:43               ` Kirill A. Shutemov
2011-09-18 20:43                 ` Kirill A. Shutemov
2011-09-15  1:46 ` [PATCH v2 2/7] socket: initial cgroup code Glauber Costa
2011-09-15  1:46   ` Glauber Costa
2011-09-17 17:52   ` Kirill A. Shutemov
2011-09-17 17:52     ` Kirill A. Shutemov
2011-09-18  3:32     ` Glauber Costa
2011-09-18  3:32       ` Glauber Costa
2011-09-18  3:32       ` Glauber Costa
2011-09-18 18:58       ` Kirill A. Shutemov
2011-09-18 18:58         ` Kirill A. Shutemov
2011-09-15  1:46 ` [PATCH v2 3/7] foundations of per-cgroup memory pressure controlling Glauber Costa
2011-09-15  1:46   ` Glauber Costa
2011-09-15  1:46 ` [PATCH v2 4/7] per-cgroup tcp buffers control Glauber Costa
2011-09-15  1:46   ` Glauber Costa
2011-09-17 18:11   ` Kirill A. Shutemov
2011-09-17 18:11     ` Kirill A. Shutemov
2011-09-17 18:33     ` Cyrill Gorcunov
2011-09-17 18:33       ` Cyrill Gorcunov
2011-09-18  3:32       ` Glauber Costa
2011-09-18  3:32         ` Glauber Costa
2011-09-18  3:32         ` Glauber Costa
2011-09-18 18:58       ` Kirill A. Shutemov
2011-09-18 18:58         ` Kirill A. Shutemov
2011-09-18 19:42         ` Glauber Costa
2011-09-18 19:42           ` Glauber Costa
2011-09-18 19:42           ` Glauber Costa
2011-09-28 11:58   ` Andrew Wagin
2011-09-28 11:58     ` Andrew Wagin
2011-09-28 12:11     ` Glauber Costa
2011-09-28 12:11       ` Glauber Costa
2011-09-28 12:11       ` Glauber Costa
2011-09-15  1:46 ` [PATCH v2 5/7] per-netns ipv4 sysctl_tcp_mem Glauber Costa
2011-09-15  1:46   ` Glauber Costa
2011-09-15  1:46 ` [PATCH v2 6/7] tcp buffer limitation: per-cgroup limit Glauber Costa
2011-09-15  1:46   ` Glauber Costa
2011-09-17 12:12   ` Glauber Costa
2011-09-17 12:12     ` Glauber Costa
2011-09-15  1:46 ` [PATCH v2 7/7] Display current tcp memory allocation in kmem cgroup Glauber Costa
2011-09-15  1:46   ` Glauber Costa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4E7567E0.9010401@parallels.com \
    --to=glommer@parallels.com \
    --cc=davem@davemloft.net \
    --cc=ebiederm@xmission.com \
    --cc=gthelen@google.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=kirill@shutemov.name \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=lizf@cn.fujitsu.com \
    --cc=netdev@vger.kernel.org \
    --cc=paul@paulmenage.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.