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>, <avagin@parallels.com>
Subject: Re: [PATCH v4 7/8] Display current tcp memory allocation in kmem cgroup
Date: Tue, 4 Oct 2011 13:10:06 +0400	[thread overview]
Message-ID: <4E8ACD6E.3090208@parallels.com> (raw)
In-Reply-To: <20111003123620.GA30018@shutemov.name>

On 10/03/2011 04:36 PM, Kirill A. Shutemov wrote:
> On Mon, Oct 03, 2011 at 04:26:41PM +0400, Glauber Costa wrote:
>> On 10/03/2011 04:25 PM, Kirill A. Shutemov wrote:
>>> On Mon, Oct 03, 2011 at 04:19:18PM +0400, Glauber Costa wrote:
>>>> On 10/03/2011 04:14 PM, Kirill A. Shutemov wrote:
>>>>> On Mon, Oct 03, 2011 at 02:18:42PM +0400, Glauber Costa wrote:
>>>>>> This patch introduces kmem.tcp_current_memory file, living in the
>>>>>> kmem_cgroup filesystem. It is a simple read-only file that displays the
>>>>>> amount of kernel memory currently consumed by the cgroup.
>>>>>>
>>>>>> Signed-off-by: Glauber Costa<glommer@parallels.com>
>>>>>> CC: David S. Miller<davem@davemloft.net>
>>>>>> CC: Hiroyouki Kamezawa<kamezawa.hiroyu@jp.fujitsu.com>
>>>>>> CC: Eric W. Biederman<ebiederm@xmission.com>
>>>>>> ---
>>>>>>     Documentation/cgroups/memory.txt |    1 +
>>>>>>     mm/memcontrol.c                  |   11 +++++++++++
>>>>>>     2 files changed, 12 insertions(+), 0 deletions(-)
>>>>>>
>>>>>> diff --git a/Documentation/cgroups/memory.txt b/Documentation/cgroups/memory.txt
>>>>>> index 1ffde3e..f5a539d 100644
>>>>>> --- a/Documentation/cgroups/memory.txt
>>>>>> +++ b/Documentation/cgroups/memory.txt
>>>>>> @@ -79,6 +79,7 @@ Brief summary of control files.
>>>>>>      memory.independent_kmem_limit	 # select whether or not kernel memory limits are
>>>>>>     				   independent of user limits
>>>>>>      memory.kmem.tcp.max_memory      # set/show hard limit for tcp buf memory
>>>>>> + memory.kmem.tcp.current_memory  # show current tcp buf memory allocation
>>>>>
>>>>> Both are in pages, right?
>>>>> Shouldn't it be scaled to bytes and named uniform with other memcg file?
>>>>> memory.kmem.tcp.limit_in_bytes/usage_in_bytes.
>>>>>
>>>> You are absolutely correct.
>>>> Since the internal tcp comparison works, I just ended up never noticing
>>>> this.
>>>
>>> Should we have failcnt and max_usage_in_bytes for tcp as well?
>>>
>>
>> Well, we get a fail count from the tracer anyway, so I don't really see
>> a need for that. I see value in having it for the slab allocation
>> itself, but since this only controls the memory pressure framework, I
>> think we can live without it.
>>
>> That said, this is not a strong opinion. I can add it if you'd prefer.
>
> It's good for userspace to have the same set of files for all domains:
>   - memory;
>   - memory.memsw;
>   - memory.kmem;
>   - memory.kmem.tcp;
>   - etc.
> Userspace can reuse code for handling them in this case.
>
Ok. Back on this.

Not all domains have all files anyway.

max_usage seems to be a property of the main memcg, not of its domains.
failcnt is present on memsw, and on that only. The problem here, is that 
this can fail ( and usually will ) in codepaths outside the memory
controller. (see net/core/sock.c:__sk_mem_schedule)

Also, max_usage makes sense for kernel memory as a whole, but I don't 
think it makes sense here as we're only controlling a specific pressure 
condition.

So in a nutshell: I'd like to leave this alone, and add 
kmem.max_usage_in_bytes and kmem.failcnt to the to soon-to-land-here 
slab accounting patches. (Where the actual allocation happens)

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, avagin@parallels.com
Subject: Re: [PATCH v4 7/8] Display current tcp memory allocation in kmem cgroup
Date: Tue, 4 Oct 2011 13:10:06 +0400	[thread overview]
Message-ID: <4E8ACD6E.3090208@parallels.com> (raw)
In-Reply-To: <20111003123620.GA30018@shutemov.name>

On 10/03/2011 04:36 PM, Kirill A. Shutemov wrote:
> On Mon, Oct 03, 2011 at 04:26:41PM +0400, Glauber Costa wrote:
>> On 10/03/2011 04:25 PM, Kirill A. Shutemov wrote:
>>> On Mon, Oct 03, 2011 at 04:19:18PM +0400, Glauber Costa wrote:
>>>> On 10/03/2011 04:14 PM, Kirill A. Shutemov wrote:
>>>>> On Mon, Oct 03, 2011 at 02:18:42PM +0400, Glauber Costa wrote:
>>>>>> This patch introduces kmem.tcp_current_memory file, living in the
>>>>>> kmem_cgroup filesystem. It is a simple read-only file that displays the
>>>>>> amount of kernel memory currently consumed by the cgroup.
>>>>>>
>>>>>> Signed-off-by: Glauber Costa<glommer@parallels.com>
>>>>>> CC: David S. Miller<davem@davemloft.net>
>>>>>> CC: Hiroyouki Kamezawa<kamezawa.hiroyu@jp.fujitsu.com>
>>>>>> CC: Eric W. Biederman<ebiederm@xmission.com>
>>>>>> ---
>>>>>>     Documentation/cgroups/memory.txt |    1 +
>>>>>>     mm/memcontrol.c                  |   11 +++++++++++
>>>>>>     2 files changed, 12 insertions(+), 0 deletions(-)
>>>>>>
>>>>>> diff --git a/Documentation/cgroups/memory.txt b/Documentation/cgroups/memory.txt
>>>>>> index 1ffde3e..f5a539d 100644
>>>>>> --- a/Documentation/cgroups/memory.txt
>>>>>> +++ b/Documentation/cgroups/memory.txt
>>>>>> @@ -79,6 +79,7 @@ Brief summary of control files.
>>>>>>      memory.independent_kmem_limit	 # select whether or not kernel memory limits are
>>>>>>     				   independent of user limits
>>>>>>      memory.kmem.tcp.max_memory      # set/show hard limit for tcp buf memory
>>>>>> + memory.kmem.tcp.current_memory  # show current tcp buf memory allocation
>>>>>
>>>>> Both are in pages, right?
>>>>> Shouldn't it be scaled to bytes and named uniform with other memcg file?
>>>>> memory.kmem.tcp.limit_in_bytes/usage_in_bytes.
>>>>>
>>>> You are absolutely correct.
>>>> Since the internal tcp comparison works, I just ended up never noticing
>>>> this.
>>>
>>> Should we have failcnt and max_usage_in_bytes for tcp as well?
>>>
>>
>> Well, we get a fail count from the tracer anyway, so I don't really see
>> a need for that. I see value in having it for the slab allocation
>> itself, but since this only controls the memory pressure framework, I
>> think we can live without it.
>>
>> That said, this is not a strong opinion. I can add it if you'd prefer.
>
> It's good for userspace to have the same set of files for all domains:
>   - memory;
>   - memory.memsw;
>   - memory.kmem;
>   - memory.kmem.tcp;
>   - etc.
> Userspace can reuse code for handling them in this case.
>
Ok. Back on this.

Not all domains have all files anyway.

max_usage seems to be a property of the main memcg, not of its domains.
failcnt is present on memsw, and on that only. The problem here, is that 
this can fail ( and usually will ) in codepaths outside the memory
controller. (see net/core/sock.c:__sk_mem_schedule)

Also, max_usage makes sense for kernel memory as a whole, but I don't 
think it makes sense here as we're only controlling a specific pressure 
condition.

So in a nutshell: I'd like to leave this alone, and add 
kmem.max_usage_in_bytes and kmem.failcnt to the to soon-to-land-here 
slab accounting patches. (Where the actual allocation happens)

--
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>, <avagin@parallels.com>
Subject: Re: [PATCH v4 7/8] Display current tcp memory allocation in kmem cgroup
Date: Tue, 4 Oct 2011 13:10:06 +0400	[thread overview]
Message-ID: <4E8ACD6E.3090208@parallels.com> (raw)
In-Reply-To: <20111003123620.GA30018@shutemov.name>

On 10/03/2011 04:36 PM, Kirill A. Shutemov wrote:
> On Mon, Oct 03, 2011 at 04:26:41PM +0400, Glauber Costa wrote:
>> On 10/03/2011 04:25 PM, Kirill A. Shutemov wrote:
>>> On Mon, Oct 03, 2011 at 04:19:18PM +0400, Glauber Costa wrote:
>>>> On 10/03/2011 04:14 PM, Kirill A. Shutemov wrote:
>>>>> On Mon, Oct 03, 2011 at 02:18:42PM +0400, Glauber Costa wrote:
>>>>>> This patch introduces kmem.tcp_current_memory file, living in the
>>>>>> kmem_cgroup filesystem. It is a simple read-only file that displays the
>>>>>> amount of kernel memory currently consumed by the cgroup.
>>>>>>
>>>>>> Signed-off-by: Glauber Costa<glommer@parallels.com>
>>>>>> CC: David S. Miller<davem@davemloft.net>
>>>>>> CC: Hiroyouki Kamezawa<kamezawa.hiroyu@jp.fujitsu.com>
>>>>>> CC: Eric W. Biederman<ebiederm@xmission.com>
>>>>>> ---
>>>>>>     Documentation/cgroups/memory.txt |    1 +
>>>>>>     mm/memcontrol.c                  |   11 +++++++++++
>>>>>>     2 files changed, 12 insertions(+), 0 deletions(-)
>>>>>>
>>>>>> diff --git a/Documentation/cgroups/memory.txt b/Documentation/cgroups/memory.txt
>>>>>> index 1ffde3e..f5a539d 100644
>>>>>> --- a/Documentation/cgroups/memory.txt
>>>>>> +++ b/Documentation/cgroups/memory.txt
>>>>>> @@ -79,6 +79,7 @@ Brief summary of control files.
>>>>>>      memory.independent_kmem_limit	 # select whether or not kernel memory limits are
>>>>>>     				   independent of user limits
>>>>>>      memory.kmem.tcp.max_memory      # set/show hard limit for tcp buf memory
>>>>>> + memory.kmem.tcp.current_memory  # show current tcp buf memory allocation
>>>>>
>>>>> Both are in pages, right?
>>>>> Shouldn't it be scaled to bytes and named uniform with other memcg file?
>>>>> memory.kmem.tcp.limit_in_bytes/usage_in_bytes.
>>>>>
>>>> You are absolutely correct.
>>>> Since the internal tcp comparison works, I just ended up never noticing
>>>> this.
>>>
>>> Should we have failcnt and max_usage_in_bytes for tcp as well?
>>>
>>
>> Well, we get a fail count from the tracer anyway, so I don't really see
>> a need for that. I see value in having it for the slab allocation
>> itself, but since this only controls the memory pressure framework, I
>> think we can live without it.
>>
>> That said, this is not a strong opinion. I can add it if you'd prefer.
>
> It's good for userspace to have the same set of files for all domains:
>   - memory;
>   - memory.memsw;
>   - memory.kmem;
>   - memory.kmem.tcp;
>   - etc.
> Userspace can reuse code for handling them in this case.
>
Ok. Back on this.

Not all domains have all files anyway.

max_usage seems to be a property of the main memcg, not of its domains.
failcnt is present on memsw, and on that only. The problem here, is that 
this can fail ( and usually will ) in codepaths outside the memory
controller. (see net/core/sock.c:__sk_mem_schedule)

Also, max_usage makes sense for kernel memory as a whole, but I don't 
think it makes sense here as we're only controlling a specific pressure 
condition.

So in a nutshell: I'd like to leave this alone, and add 
kmem.max_usage_in_bytes and kmem.failcnt to the to soon-to-land-here 
slab accounting patches. (Where the actual allocation happens)

--
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>

  parent reply	other threads:[~2011-10-04  9:11 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-03 10:18 [PATCH v4 0/8] per-cgroup tcp buffer pressure settings Glauber Costa
2011-10-03 10:18 ` Glauber Costa
2011-10-03 10:18 ` [PATCH v4 1/8] Basic kernel memory functionality for the Memory Controller Glauber Costa
2011-10-03 10:18   ` Glauber Costa
2011-10-03 10:41   ` Kirill A. Shutemov
2011-10-03 10:41     ` Kirill A. Shutemov
2011-10-03 10:41     ` Glauber Costa
2011-10-03 10:41       ` Glauber Costa
2011-10-03 10:41       ` Glauber Costa
2011-10-04  0:38   ` KAMEZAWA Hiroyuki
2011-10-04  0:38     ` KAMEZAWA Hiroyuki
2011-10-03 10:18 ` [PATCH v4 2/8] socket: initial cgroup code Glauber Costa
2011-10-03 10:18   ` Glauber Costa
2011-10-03 10:47   ` Kirill A. Shutemov
2011-10-03 10:47     ` Kirill A. Shutemov
2011-10-03 10:48     ` Glauber Costa
2011-10-03 10:48       ` Glauber Costa
2011-10-03 10:48       ` Glauber Costa
2011-10-03 11:02       ` Kirill A. Shutemov
2011-10-03 11:02         ` Kirill A. Shutemov
2011-10-03 11:03         ` Glauber Costa
2011-10-03 11:03           ` Glauber Costa
2011-10-04  0:41   ` KAMEZAWA Hiroyuki
2011-10-04  0:41     ` KAMEZAWA Hiroyuki
2011-10-03 10:18 ` [PATCH v4 3/8] foundations of per-cgroup memory pressure controlling Glauber Costa
2011-10-03 10:18   ` Glauber Costa
2011-10-03 15:13   ` Andrew Vagin
2011-10-03 15:13     ` Andrew Vagin
2011-10-04  0:57   ` KAMEZAWA Hiroyuki
2011-10-04  0:57     ` KAMEZAWA Hiroyuki
2011-10-04  6:32     ` Glauber Costa
2011-10-04  6:32       ` Glauber Costa
2011-10-04  6:32       ` Glauber Costa
2011-10-04  7:13     ` Glauber Costa
2011-10-04  7:13       ` Glauber Costa
2011-10-03 10:18 ` [PATCH v4 4/8] per-cgroup tcp buffers control Glauber Costa
2011-10-03 10:18   ` Glauber Costa
2011-10-04  1:16   ` KAMEZAWA Hiroyuki
2011-10-04  1:16     ` KAMEZAWA Hiroyuki
2011-10-04  5:43     ` Glauber Costa
2011-10-04  5:43       ` Glauber Costa
2011-10-04  5:43       ` Glauber Costa
2011-10-03 10:18 ` [PATCH v4 5/8] per-netns ipv4 sysctl_tcp_mem Glauber Costa
2011-10-03 10:18   ` Glauber Costa
2011-10-04  1:18   ` KAMEZAWA Hiroyuki
2011-10-04  1:18     ` KAMEZAWA Hiroyuki
2011-10-03 10:18 ` [PATCH v4 6/8] tcp buffer limitation: per-cgroup limit Glauber Costa
2011-10-03 10:18   ` Glauber Costa
2011-10-04  1:21   ` KAMEZAWA Hiroyuki
2011-10-04  1:21     ` KAMEZAWA Hiroyuki
2011-10-04  6:22     ` Glauber Costa
2011-10-04  6:22       ` Glauber Costa
2011-10-04  6:22       ` Glauber Costa
2011-10-03 10:18 ` [PATCH v4 7/8] Display current tcp memory allocation in kmem cgroup Glauber Costa
2011-10-03 10:18   ` Glauber Costa
2011-10-03 12:14   ` Kirill A. Shutemov
2011-10-03 12:14     ` Kirill A. Shutemov
2011-10-03 12:19     ` Glauber Costa
2011-10-03 12:19       ` Glauber Costa
2011-10-03 12:19       ` Glauber Costa
2011-10-03 12:25       ` Kirill A. Shutemov
2011-10-03 12:25         ` Kirill A. Shutemov
2011-10-03 12:26         ` Glauber Costa
2011-10-03 12:26           ` Glauber Costa
2011-10-03 12:26           ` Glauber Costa
2011-10-03 12:36           ` Kirill A. Shutemov
2011-10-03 12:36             ` Kirill A. Shutemov
2011-10-03 12:36             ` Glauber Costa
2011-10-03 12:36               ` Glauber Costa
2011-10-03 12:36               ` Glauber Costa
2011-10-04  9:10             ` Glauber Costa [this message]
2011-10-04  9:10               ` Glauber Costa
2011-10-04  9:10               ` Glauber Costa
2011-10-06  8:46               ` Kirill A. Shutemov
2011-10-06  8:46                 ` Kirill A. Shutemov
2011-10-03 10:18 ` [PATCH v4 8/8] Disable task moving when using kernel memory accounting Glauber Costa
2011-10-03 10:18   ` 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=4E8ACD6E.3090208@parallels.com \
    --to=glommer@parallels.com \
    --cc=avagin@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.