From: Andrew Morton <akpm@linux-foundation.org>
To: Balbir Singh <balbir@linux.vnet.ibm.com>
Cc: linux-mm@kvack.org, skumar@linux.vnet.ibm.com,
yamamoto@valinux.co.jp, menage@google.com, lizf@cn.fujitsu.com,
linux-kernel@vger.kernel.org, rientjes@google.com,
xemul@openvz.org, balbir@linux.vnet.ibm.com,
kamezawa.hiroyu@jp.fujitsu.com
Subject: Re: [-mm][PATCH 4/4] Add rlimit controller documentation
Date: Mon, 5 May 2008 15:35:09 -0700 [thread overview]
Message-ID: <20080505153509.da667caf.akpm@linux-foundation.org> (raw)
In-Reply-To: <20080503213825.3140.4328.sendpatchset@localhost.localdomain>
On Sun, 04 May 2008 03:08:25 +0530
Balbir Singh <balbir@linux.vnet.ibm.com> wrote:
>
>
> This is the documentation patch. It describes the rlimit controller and how
> to build and use it.
>
> Signed-off-by: Balbir Singh <balbir@linux.vnet.ibm.com>
> ---
>
> Documentation/controllers/rlimit.txt | 29 +++++++++++++++++++++++++++++
> 1 file changed, 29 insertions(+)
>
> diff -puN /dev/null Documentation/controllers/rlimit.txt
> --- /dev/null 2008-05-03 22:12:13.033285313 +0530
> +++ linux-2.6.25-balbir/Documentation/controllers/rlimit.txt 2008-05-04 03:06:06.000000000 +0530
> @@ -0,0 +1,29 @@
> +This controller is enabled by the CONFIG_CGROUP_RLIMIT_CTLR option. Prior
> +to reading this documentation please read Documentation/cgroups.txt and
> +Documentation/controllers/memory.txt. Several of the principles of this
> +controller are similar to the memory resource controller.
> +
> +This controller framework is designed to be extensible to control any
> +resource limit (memory related) with little effort.
> +
> +This new controller, controls the address space expansion of the tasks
> +belonging to a cgroup. Address space control is provided along the same lines as
> +RLIMIT_AS control, which is available via getrlimit(2)/setrlimit(2).
> +The interface for controlling address space is provided through
> +"rlimit.limit_in_bytes". The file is similar to "limit_in_bytes" w.r.t. the user
> +interface. Please see section 3 of the memory resource controller documentation
> +for more details on how to use the user interface to get and set values.
> +
> +The "rlimit.usage_in_bytes" file provides information about the total address
> +space usage of the tasks in the cgroup, in bytes.
Finally, with a bit of between-the-line reading, I begin to understand what
this stuff is actually supposed to do.
It puts an upper limit upon the _total_ address-space size of all the mms
which are contained within the resource group, yes?
(can am mm be shared by two threads whcih are in different resource groups,
btw?)
> +Advantages of providing this feature
> +
> +1. Control over virtual address space allows for a cgroup to fail gracefully
> + i.e., via a malloc or mmap failure as compared to OOM kill when no
> + pages can be reclaimed.
> +2. It provides better control over how many pages can be swapped out when
> + the cgroup goes over its limit. A badly setup cgroup can cause excessive
> + swapping. Providing control over the address space allocations ensures
> + that the system administrator has control over the total swapping that
> + can take place.
Here's another missing piece: what is the kernel's behaviour when such a
limit is increased? Seems that the sole option is a failure return from
mmap/brk/sbrk/etc, yes?
This should be spelled out in careful detail, please. This is a
newly-proposed kernel<->userspace interface and we care about those very
much.
Finally, I worry about overflows. afacit the
sum-of-address-space-sizes-for-a-cgroup is accounted for in an unsigned
long?
If so, a 32-bit machine could easily overflow it.
And a 64-bit machine could possibly do so with a bit of effort, perhaps?
That's assuming that the code doesn't attempt to avoid duplicate accounting
due to multiple-mms-mapping-the-same-pages, which afaict appears to be the
case. (Then again, perhaps no machine will ever have the pagetable space
to get that far).
Ho hum, I had to do rather a lot of guesswork here to try to understand
your proposed overall design for this feature. I'd prefer to hear about
your design via more direct means.
next prev parent reply other threads:[~2008-05-05 22:36 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-03 21:37 [-mm][PATCH 0/4] Add rlimit controller to cgroups (v3) Balbir Singh
2008-05-03 21:37 ` [-mm][PATCH 1/4] Setup the rlimit controller Balbir Singh
2008-05-05 22:11 ` Andrew Morton
2008-05-06 3:40 ` Balbir Singh
2008-05-06 1:31 ` Li Zefan
2008-05-06 8:15 ` Balbir Singh
2008-05-03 21:38 ` [-mm][PATCH 2/4] Enhance cgroup mm_owner_changed callback to add task information Balbir Singh
2008-05-05 22:15 ` Andrew Morton
2008-05-06 3:43 ` Balbir Singh
2008-05-05 23:00 ` Paul Menage
2008-05-03 21:38 ` [-mm][PATCH 3/4] Add rlimit controller accounting and control Balbir Singh
2008-05-05 22:24 ` Andrew Morton
2008-05-05 22:32 ` David Rientjes
2008-05-06 5:34 ` Balbir Singh
2008-05-07 3:17 ` Paul Menage
2008-05-07 5:59 ` Pavel Emelyanov
2008-05-08 14:54 ` Balbir Singh
2008-05-08 23:22 ` Paul Menage
2008-05-07 3:29 ` Paul Menage
2008-05-08 14:35 ` Balbir Singh
2008-05-08 21:45 ` Paul Menage
2008-05-09 13:35 ` Balbir Singh
2008-05-03 21:38 ` [-mm][PATCH 4/4] Add rlimit controller documentation Balbir Singh
2008-05-05 22:35 ` Andrew Morton [this message]
2008-05-06 5:39 ` Balbir Singh
2008-05-06 5:54 ` Andrew Morton
2008-05-06 7:59 ` Balbir Singh
2008-05-04 15:24 ` [-mm][PATCH 0/4] Add rlimit controller to cgroups (v3) kamezawa.hiroyu
2008-05-04 15:27 ` kamezawa.hiroyu
2008-05-05 4:24 ` Balbir Singh
2008-05-05 4:21 ` Balbir Singh
2008-05-07 1:09 ` KAMEZAWA Hiroyuki
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=20080505153509.da667caf.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=balbir@linux.vnet.ibm.com \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lizf@cn.fujitsu.com \
--cc=menage@google.com \
--cc=rientjes@google.com \
--cc=skumar@linux.vnet.ibm.com \
--cc=xemul@openvz.org \
--cc=yamamoto@valinux.co.jp \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox