From: ebiederm@xmission.com (Eric W. Biederman)
To: Andrew Morton <akpm@osdl.org>
Cc: "Serge E. Hallyn" <serue@us.ibm.com>,
linux-kernel@vger.kernel.org, dev@sw.ru, herbert@13thfloor.at,
devel@openvz.org, sam@vilain.net, xemul@sw.ru,
haveblue@us.ibm.com, clg@fr.ibm.com,
Jeff Dike <jdike@addtoit.com>
Subject: Re: [PATCH 0/9] namespaces: Introduction
Date: Fri, 19 May 2006 05:41:45 -0600 [thread overview]
Message-ID: <m1ves2z1fq.fsf@ebiederm.dsl.xmission.com> (raw)
In-Reply-To: <20060518103430.080e3523.akpm@osdl.org> (Andrew Morton's message of "Thu, 18 May 2006 10:34:30 -0700")
Andrew Morton <akpm@osdl.org> writes:
> All of which begs the question "now what?".
I think we are at the point where it is time to start merging patches
into -mm, and having the discussion on what the merge plans are
for the rest of this code.
> What we do _not_ want to do is to merge up a pile of infrastructural stuff
> which never gets used. On the other hand, we don't want to be in a
> position where nothing is merged into mainline until the entirety of
> vserver &&/|| openvs is ready to be merged.
The namespaces I see needed for a useable result are:
- fs namespace (already merged)
- uts namespace
- sysvipc namespace
- time namespace
- uid/gid (keys?) namespace
- network namespace
- pid namespace
> I see two ways of justifying a mainline merge of things such as this
>
> a) We make an up-front decision that Linux _will_ have OS-virtualisation
> capability in the future and just start putting in place the pieces for
> that, even if some of them are not immediately useful.
>
> I suspect that'd be acceptable, although I worry that we'd get
> partway through and some issues would come up which are irreconcilable
> amongst the various groups.
I think I see a third way of justifying a mainline merge. We make an
up-front decision that we will improve the existing chroot jail
functionality in Linux and start making improvements. Even if some of
the improvements are quite small.
Except for partial steps while the code is being refactored, we should
never have steps that are not immediately useful.
This reduces the danger of irreconcilable differences, because being
part way through is still useful.
The only namespace that I see as really contentious is the pid
namespace, and even there I don't think we have read an impasse.
There remains a bunch of patches left to write that replace raw pid_t
values with struct pid references, but once that happens the patches
to implement the pid namespace will be small, and I don't see any
previous problems that we can't resolve when the conversation happens.
> It would help set minds at ease if someone could produce a
> bullet-point list of what features the kernel will need to get it to the
> stage where "most or all vserver and openvz functionality can be
> implemented by controlling resource namespaces from userspace." Then we
> can discuss that list, make sure that everyone's pretty much in
> agreement.
So this is slightly the wrong question. If you look at Sam's list you
will see that there are several independent dimensions to the complete
solution. Most of them dealing with the increase in the number of users
and the amount of work that is happening on a single kernel in this
context.
Basically we need to expect a lot of kernel tuning after we get the
basics working.
The proper question is: What needs to happen before we can run separate
user space instances?
The namespaces I have previously listed. There is also a lot of
cleanup work with sysctl, proc, sysfs, netlink and some other
fundamental interfaces that needs to happen as well. Until each
namespace gets merged we are in a race with other people looking
at enhancing those namespaces. So a complete of what needs to be
fixed is impossible.
> b) Only merge into mainline those feature which make sense in a
> standalone fashion. eg, we don't merge this patchset unless the
> "per-process utsname namespace" feature is useful to and usable by a
> sufficiently broad group of existing Linux users.
>
> I suspect this will be a difficult approach.
I agree if the feature must be useful and usable by a sufficiently
broad group of existing Linux users. Of course I suspect the current
fs namespace fails this test.
I would rather the criteria be, that the functionality that is well
defined and not detrimental to the rest of users.
> The third way would be to buffer it all up in -mm until everything is
> sufficiently in place and then slam it all in. That might not be feasible
> for various reasons - please advise..
Fundamentally I don't think there are problems buffering things up in -mm,
but I worry that we would start having -mm too different from the
stable kernel at some point.
For some of the pieces like the networking stack we need to go through
the respective maintainers, and their development trees to avoid
conflicts. For the sysvipc, utsname, and we have avoided that
because they are absolutely trivial namespaces and they don't have
active maintainers.
> A fourth way would be for someone over there to run a git tree - you all
> happily work away, I redistribute it in -mm for testing and one day it's
> all ready to merge. I don't really like this approach. It ends up meaning
> that nobody else reviews the new code, nobody else understands what it's
> doing, etc. It's generally subversive of the way we do things.
The only part of this picture that might make sense is if we have a
process by which we can decide if patches are good and acceptable to
the various projects independent of deciding if they are good for
the kernel proper, which might take some of the burden off of the
rest of the kernel maintainers.
If we were working in an area of the kernel where we didn't affect
anyone else it would be business as usual and not really subversive.
But since we can't implement things this way I agree that this
code needs to be reviewed as much as possible.
> Eric, Kirill, Herbert: let us know your thoughts, please.
Eric
next prev parent reply other threads:[~2006-05-19 11:43 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-18 15:47 Serge E. Hallyn
2006-05-18 15:48 ` [PATCH 1/9] namespaces: add nsproxy Serge E. Hallyn
2006-05-21 23:30 ` Sam Vilain
2006-05-21 23:38 ` Eric W. Biederman
2006-05-22 12:39 ` Serge E. Hallyn
2006-05-18 15:49 ` [PATCH 2/9] namespaces: incorporate fs namespace into nsproxy Serge E. Hallyn
2006-05-18 15:49 ` [PATCH 3/9] namespaces: utsname: introduce temporary helpers Serge E. Hallyn
2006-05-18 15:49 ` [PATCH 4/9] namespaces: utsname: switch to using uts namespaces Serge E. Hallyn
2006-05-19 0:02 ` Randy.Dunlap
2006-05-19 2:21 ` Serge E. Hallyn
2006-05-19 2:45 ` Randy.Dunlap
2006-05-19 3:12 ` Sam Vilain
2006-05-19 9:05 ` Eric W. Biederman
2006-05-19 17:39 ` Randy.Dunlap
2006-05-19 11:58 ` Eric W. Biederman
2006-05-22 19:43 ` Cedric Le Goater
2006-05-22 20:19 ` Randy.Dunlap
2006-05-22 0:19 ` Sam Vilain
2006-05-18 15:49 ` [PATCH 5/9] namespaces: utsname: use init_utsname when appropriate Serge E. Hallyn
2006-05-18 15:50 ` [PATCH 6/9] namespaces: utsname: implement utsname namespaces Serge E. Hallyn
2006-05-18 15:50 ` [PATCH 7/9] namespaces: utsname: sysctl hack Serge E. Hallyn
2006-05-18 15:50 ` [PATCH 8/9] namespaces: utsname: remove system_utsname Serge E. Hallyn
2006-05-18 23:03 ` Paul Mackerras
2006-05-18 23:04 ` Paul Mackerras
2006-05-18 15:51 ` [PATCH 9/9] namespaces: utsname: implement CLONE_NEWUTS flag Serge E. Hallyn
2006-05-18 17:34 ` [PATCH 0/9] namespaces: Introduction Andrew Morton
2006-05-18 19:23 ` John Kelly
2006-05-18 23:28 ` Sam Vilain
2006-05-18 23:43 ` Sam Vilain
2006-05-19 4:24 ` Paul Jackson
2006-05-19 9:23 ` Eric W. Biederman
2006-05-19 11:41 ` Eric W. Biederman [this message]
2006-05-19 17:52 ` Jeff Dike
2006-05-20 0:16 ` Sam Vilain
2006-05-19 12:42 ` Herbert Poetzl
2006-05-19 15:13 ` Andrew Morton
2006-05-19 16:27 ` Eric W. Biederman
2006-05-19 16:40 ` Andrew Morton
2006-05-19 17:15 ` Stephen Hemminger
2006-05-19 20:17 ` Dave Hansen
2006-05-19 20:52 ` Alexey Kuznetsov
2006-05-19 18:28 ` Hua Zhong
2006-05-19 19:38 ` Serge E. Hallyn
2006-05-19 19:45 ` John Kelly
2006-05-19 20:23 ` John Kelly
2006-05-19 20:04 ` Dave Hansen
2006-05-20 3:18 ` Eric W. Biederman
2006-05-21 0:48 ` Eric W. Biederman
2006-05-21 22:57 ` Pavel Machek
2006-05-21 23:18 ` Eric W. Biederman
2006-05-21 23:32 ` Herbert Poetzl
2006-05-22 16:54 ` Eric W. Biederman
2006-05-19 13:47 ` Andrey Savochkin
2006-05-19 15:25 ` Andrew Morton
2006-05-20 21:24 ` Herbert Poetzl
2006-05-22 17:23 ` Eric W. Biederman
2006-05-20 0:16 ` Sam Vilain
2006-05-19 8:50 ` Eric W. Biederman
2006-05-19 13:30 ` Serge E. Hallyn
2006-05-21 16:27 ` Serge E. Hallyn
2006-05-21 18:08 ` Eric W. Biederman
2006-05-22 12:10 ` Serge E. Hallyn
2006-05-22 16:44 ` Eric W. Biederman
2006-05-19 17:17 Al Boldi
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=m1ves2z1fq.fsf@ebiederm.dsl.xmission.com \
--to=ebiederm@xmission.com \
--cc=akpm@osdl.org \
--cc=clg@fr.ibm.com \
--cc=dev@sw.ru \
--cc=devel@openvz.org \
--cc=haveblue@us.ibm.com \
--cc=herbert@13thfloor.at \
--cc=jdike@addtoit.com \
--cc=linux-kernel@vger.kernel.org \
--cc=sam@vilain.net \
--cc=serue@us.ibm.com \
--cc=xemul@sw.ru \
/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
Powered by JetHome