From: David Rientjes <rientjes@cs.washington.edu>
To: Pavel Emelianov <xemul@openvz.org>
Cc: balbir@in.ibm.com, vatsa@in.ibm.com, dev@openvz.org,
sekharan@us.ibm.com, ckrm-tech@lists.sourceforge.net,
haveblue@us.ibm.com, linux-kernel@vger.kernel.org, pj@sgi.com,
matthltc@us.ibm.com, dipankar@in.ibm.com, rohitseth@google.com,
menage@google.com, linux-mm@kvack.org
Subject: Re: [ckrm-tech] RFC: Memory Controller
Date: Wed, 1 Nov 2006 00:35:04 -0800 (PST) [thread overview]
Message-ID: <Pine.LNX.4.64N.0611010016350.27467@attu4.cs.washington.edu> (raw)
In-Reply-To: <45485541.6060700@openvz.org>
On Wed, 1 Nov 2006, Pavel Emelianov wrote:
> beancounters may be implemented above any (or nearly any) userspace
> interface, no questions. But we're trying to come to agreement here,
> so I just say my point of view.
>
> I don't mind having file system based interface, I just believe that
> configfs is not so good for it. I've already answered that having
> our own filesystem for it sounds better than having configfs.
>
> Maybe we can summarize what we have come to?
>
I've seen nothing but praise for Paul Menage's suggestion of implementing
a single-level containers abstraction for processes and attaching
these to various resource controller (disk, network, memory, cpu) nodes.
The question of whether to use configfs or not is really at the fore-front
of that discussion because making any progress in implementation is
difficult without first deciding upon it, and the containers abstraction
patchset uses configfs as its interface.
The original objection against configfs was against the lifetime of the
resource controller. But this is actually a two part question since there
are two interfaces: one for the containers, one for the controllers. At
present it seems like the only discussion taking place is that of the
container so this objection can wait. After boot, there are one of two
options:
- require the user to mount the configfs filesystem with a single
system-wide container as default
i. include all processes in that container by default
ii. include no processes in that container, force the user to add them
- create the entire container abstraction upon boot and attach all
processes to it in a manner similar to procfs
[ In both scenarios, kernel behavior is unchanged if no resource
controller node is attached to any container as if the container(s)
didn't exist. ]
Another objection against configfs was the fact that you must define
CONFIG_CONFIGFS_FS to use CONFIG_CONTAINERS. This objection does not make
much sense since it seems like we are falling the direction of abandoning
the syscall approach here and looking toward an fs approach in the first
place. So CONFIG_CONTAINERS will need to include its own lightweight
filesystem if we cannot use CONFIG_CONFIGFS_FS, but it seems redundant
since this is what configfs is for: a configurable filesystem to interface
to the kernel. We definitely do not want two or more interfaces to
_containers_ so we are reimplementing an already existing infrastructure.
The criticism that users can create containers and then not use them
shouldn't be an issue if it is carefully implemented. In fact, I proposed
that all processes are initially attached to a single system-wide
container at boot regardless if you've loaded any controllers or not just
like how UMA machines work with node 0 for system-wide memory. We should
incur no overhead for having empty or _full_ containers if we haven't
loaded controllers or have configured them properly to include the right
containers.
So if we re-read Paul Menage's containers abstraction away from cpusets
patchset that uses configfs, we can see that we are almost there with the
exception of making it a single-layer "hierarchy" as he has already
proposed. Resource controller "nodes" that these containers can be
attached to are a separate issue at this point and shouldn't be confused.
David
--
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>
prev parent reply other threads:[~2006-11-01 8:35 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20061030103356.GA16833@in.ibm.com>
[not found] ` <4545D51A.1060808@in.ibm.com>
[not found] ` <4546212B.4010603@openvz.org>
[not found] ` <454638D2.7050306@in.ibm.com>
2006-10-30 18:07 ` Balbir Singh
2006-10-31 8:57 ` Pavel Emelianov
2006-10-31 9:19 ` Balbir Singh
2006-10-31 9:25 ` Pavel Emelianov
2006-10-31 10:10 ` Balbir Singh
2006-10-31 10:19 ` Pavel Emelianov
2006-10-31 9:42 ` Andrew Morton
2006-10-31 10:36 ` Balbir Singh
[not found] ` <45470DF4.70405@openvz.org>
2006-10-31 10:54 ` Balbir Singh
2006-10-31 11:15 ` Pavel Emelianov
2006-10-31 12:39 ` Balbir Singh
2006-10-31 14:19 ` Pavel Emelianov
2006-10-31 16:54 ` Paul Menage
2006-11-01 6:00 ` David Rientjes
2006-11-01 8:05 ` Pavel Emelianov
2006-11-01 8:35 ` David Rientjes [this message]
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=Pine.LNX.4.64N.0611010016350.27467@attu4.cs.washington.edu \
--to=rientjes@cs.washington.edu \
--cc=balbir@in.ibm.com \
--cc=ckrm-tech@lists.sourceforge.net \
--cc=dev@openvz.org \
--cc=dipankar@in.ibm.com \
--cc=haveblue@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=matthltc@us.ibm.com \
--cc=menage@google.com \
--cc=pj@sgi.com \
--cc=rohitseth@google.com \
--cc=sekharan@us.ibm.com \
--cc=vatsa@in.ibm.com \
--cc=xemul@openvz.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox