linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: "Paul Menage" <menage@google.com>
To: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Cc: minoura@valinux.co.jp, nishimura@mxp.nes.nec.co.jp,
	linux-mm@kvack.org, containers@lists.osdl.org, hugh@veritas.com,
	balbir@linux.vnet.ibm.com
Subject: Re: [RFC][PATCH] another swap controller for cgroup
Date: Thu, 15 May 2008 00:19:39 -0700	[thread overview]
Message-ID: <6599ad830805150019v5ba23fe1xe5a6e8b80bc194f5@mail.gmail.com> (raw)
In-Reply-To: <20080515062318.5F1BA5A07@siro.lan>

On Wed, May 14, 2008 at 11:23 PM, YAMAMOTO Takashi
<yamamoto@valinux.co.jp> wrote:
>  > >
>  >
>  > You need to be able to sleep in order to take mmap_sem, right?
>
>  yes.

OK, well in the thread on balbir's vm limit controller, we discussed
the idea of having mmap_sem held across calls to
mm_update_next_owner(), and hence the cgroup callbacks. Would that
help if mmap_sem were already held when you get the mm_owner_changed()
callback.

>
>  > A few comments on the patch:
>  >
>  > - you're not really limiting swap usage, you're limiting swapped-out
>  > address space. So it looks as though if a process has swapped out most
>  > of its address space, and forks a child, the total "swap" charge for
>  > the cgroup will double. Is that correct?
>
>  yes.
>
>
>  > If so, why is this better
>  > than charging for actual swap usage?
>
>  its behaviour is more determinstic and it uses less memory.
>  (than nishimura-san's one, which charges for actual swap usage.)
>

Using less memory is good, but maybe not worth it if the result isn't so useful.

I'd say that it's less deterministic than nishimura-san's controller -
with his you just need to know how much swap is in use (which you can
tell by observing the app on a real system) but with yours you also
have to know whether there are any processes sharing anon pages (but
not mms).

Now it's true that if all the apps you need to run do an execve()
after forking, then the number of swap ptes really does track the
amount of swap space in use pretty accurately, since there's not going
to be any sharing of anon memory between mms. And it might be that
people decide that the reduced memory overhead justifies this
limitation. But I think it should be made explicit in the patch
description and documentation that this controller achieves its
reduced overhead at the cost of giving (IMO) bogus results on a rather
ancient but still perfectly legitimate class of Unix application. (The
apache httpd server used to work this way, for instance. It may still
but I've not looked at it in a while).

>
>  > - what will happen if someone creates non-NPTL threads, which share an
>  > mm but not a thread group (so each of them is a thread group leader)?
>
>  a thread which is most recently assigned to a cgroup will "win".
>

Doesn't that risk triggering the BUG_ON(mm->swap_cgroup != oldscg) in
swap_cgroup_attach() ?

>
>  > - if you were to store a pointer in the page rather than the
>
>  "a pointer"?  a pointer to what?

Oops, sorry - I meant to say "a pointer to the mm". So from there you
can get to mm->owner, and hence to mm->owner->cgroups[swap]

Paul

--
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/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2008-05-15  7:19 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-17  2:04 [RFC][PATCH] another swap controller for cgroup YAMAMOTO Takashi
2008-03-17  5:11 ` Balbir Singh
2008-03-17  8:15 ` Daisuke Nishimura
2008-03-17  8:50   ` YAMAMOTO Takashi
2008-04-29 22:50     ` YAMAMOTO Takashi
2008-04-30  4:09       ` Daisuke Nishimura
2008-05-22  4:46         ` YAMAMOTO Takashi
2008-05-22  4:54           ` Daisuke Nishimura
2008-05-05  6:11       ` Balbir Singh
2008-05-07  5:50         ` YAMAMOTO Takashi
2008-05-08 15:43           ` Balbir Singh
2008-05-14  3:21             ` YAMAMOTO Takashi
2008-05-14  3:27               ` Paul Menage
2008-05-14  8:44               ` Paul Menage
2008-05-15  6:23                 ` YAMAMOTO Takashi
2008-05-15  7:19                   ` Paul Menage [this message]
2008-05-15  8:56                     ` YAMAMOTO Takashi
2008-05-15 12:01                       ` Daisuke Nishimura
2008-05-19  4:14                         ` YAMAMOTO Takashi
2008-03-24 12:10   ` Daisuke Nishimura
2008-03-24 12:22     ` Balbir Singh
2008-03-25  6:46       ` Daisuke Nishimura
2008-03-25  3:10     ` YAMAMOTO Takashi
2008-03-25  4:35       ` Daisuke Nishimura
2008-03-25  8:57         ` YAMAMOTO Takashi
2008-03-25 12:35           ` Daisuke Nishimura
2008-03-27  6:28             ` YAMAMOTO Takashi
2008-03-28  9:00               ` Daisuke Nishimura
     [not found]                 ` <47ECB3B1.6040500-YQH0OdQVrdy45+QrQBaojngSJqDPrsil@public.gmane.org>
2008-04-08  3:29                   ` YAMAMOTO Takashi
2008-04-10  7:40               ` YAMAMOTO Takashi

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=6599ad830805150019v5ba23fe1xe5a6e8b80bc194f5@mail.gmail.com \
    --to=menage@google.com \
    --cc=balbir@linux.vnet.ibm.com \
    --cc=containers@lists.osdl.org \
    --cc=hugh@veritas.com \
    --cc=linux-mm@kvack.org \
    --cc=minoura@valinux.co.jp \
    --cc=nishimura@mxp.nes.nec.co.jp \
    --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;
as well as URLs for NNTP newsgroup(s).