From: ebiederm@xmission.com (Eric W. Biederman)
To: Kirill Korotaev <dev@sw.ru>
Cc: linux-kernel@vger.kernel.org, vserver@list.linux-vserver.org,
Herbert Poetzl <herbert@13thfloor.at>,
"Serge E. Hallyn" <serue@us.ibm.com>,
Alan Cox <alan@lxorguk.ukuu.org.uk>,
Dave Hansen <haveblue@us.ibm.com>,
Arjan van de Ven <arjan@infradead.org>,
Suleiman Souhlal <ssouhlal@FreeBSD.org>,
Hubertus Franke <frankeh@watson.ibm.com>,
Cedric Le Goater <clg@fr.ibm.com>,
Kyle Moffett <mrmacman_g4@mac.com>, Greg <gkurz@fr.ibm.com>,
Linus Torvalds <torvalds@osdl.org>, Andrew Morton <akpm@osdl.org>,
Greg KH <greg@kroah.com>, Rik van Riel <riel@redhat.com>,
Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>,
Andrey Savochkin <saw@sawoct.com>,
Kirill Korotaev <dev@openvz.org>, Andi Kleen <ak@suse.de>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Jeff Garzik <jgarzik@pobox.com>,
Trond Myklebust <trond.myklebust@fys.uio.no>,
Jes Sorensen <jes@sgi.com>
Subject: Re: [RFC][PATCH 01/20] pid: Intoduce the concept of a wid (wait id)
Date: Mon, 13 Feb 2006 17:04:11 -0700 [thread overview]
Message-ID: <m1fymmvm9w.fsf@ebiederm.dsl.xmission.com> (raw)
In-Reply-To: <43F046B0.7020702@sw.ru> (Kirill Korotaev's message of "Mon, 13 Feb 2006 11:43:28 +0300")
Kirill Korotaev <dev@sw.ru> writes:
>>>2. Maybe I'm missing something in the discussions, but why is it required? if
>>>you provide fully isolated pid spaces, why do you care for wid?
>>>And how ptrace can work at all if cldstop reports some pid, but child is not
>>>accessiable via ptrace()? and if it doesn't work, what are your changes for?
>> A good question.
>> My pid spaces while isolated from each other are connected together in
>> something that resembles the mount relationship when mounting a filesystem.
> why? is it really required?
A very good question. Supporting waitpid and the normal process management
semantics seems to be a requirement for usability. Completely separate pid
spaces would probably be easier to implement. However then we would need
to implement another interface like waitpid to allow for notifications when
the all of the processes exited.
I have not seen any alternatives being proposed to handle that case.
> doing it this way, you get all the issues with external refs we have with a weak
> isolation, i.e. pspace init can be seen from outside and inside (correct? or am
> I wrong?).
Largely correct. Looking at it from the outside is like looking at a thread
group leader. Sometimes you see the leader sometimes you see the entire
group of processes.
> This makes your approach eseentially the same as ours from
> checkpointing point of view BTW.
Sure. Any attempt to build a general purpose mechanism will suffer from
that. But it is easy enough to drop the external references from the
init processes, and then it's children don't have a chance to get them.
>> The init process of a child pspace is visible in the parent pspace,
>> by it's wid. So you should be able to ptrace pid == 1. The other
>> children remain inaccessible directly.
>> The idea was to do my very best to preserve the unix process tree when
>> constructing a separate pid space
> This more looks like you were trying to make less changes with it and avoid
> fixing issus which can arise when pspaces are fully isolated. Maybe I'm wrong.
It's not sloth. Simply trying to extend the existing API. Not changing
what doesn't need to be changed is a virtue.
But yes fully isolated pid spaces are unmanageable unless you add and API
to deal with it. My api is using the wid to allow a parent process to manage
it essentially like normal.
>> I have to admit I have not yet tested the ptrace corner case, or
>> digested all of it's ramifications. Unless I have messed up somewhere
>> it should just work.
>> This visibility of the child tree by a single pid inside the parent
>> tree is why I think my approach doesn't suffer from most of the
>> problems a completely isolated pid space has.
> which problems? Actually I can't see much problems with isolated pid spaces. And
> isolated pid spaces doesn't require hierarchy, since they are fully isolated.
You also don't find them interesting enough to implement. Or else we are using
the same terms to mean different things.
>> In fact I would even be willing to look at it as a global but
>> hierarchical pid space if that proved an interesting case.
>> So you could have something like pkill(int sig, int which, char *pid_path).
>> Where pid_path is something like "1537/3/58", and which specified
>> what kind of pid you are talking about (thread, pid, process group...)
> And here you need to introduce new non-unix semantics, security checks on
> lookups, etc.
Sure you need to introduce new semantics, etc. But nothing more
than what you already have in OpenVZ. The only necessary difference
is in how you name the process. The target process is still being
manipulated by a process outside of it's scope of existence.
So if the need for doing that is as great as you say it is something
that is doable, and their may be other methods that are easier to work
with.
Personally I only implemented as much manipulation of the init
processes as I did because it came for free. I don't see the need
to manipulate a process in another pid namespace.
Eric
next prev parent reply other threads:[~2006-02-14 0:06 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-02-06 19:19 [RFC][PATCH 0/20] Multiple instances of the process id namespace Eric W. Biederman
2006-02-06 19:22 ` [RFC][PATCH 01/20] pid: Intoduce the concept of a wid (wait id) Eric W. Biederman
2006-02-06 19:27 ` [RFC][PATCH 02/20] pspace: The parent process id of pid 1 is always 0 Eric W. Biederman
2006-02-06 19:29 ` [RFC][PATCH 03/20] pid: Introduce a generic helper to test for init Eric W. Biederman
2006-02-06 19:34 ` [RFC][PATCH 04/20] pspace: Allow multiple instaces of the process id namespace Eric W. Biederman
2006-02-06 19:36 ` [RFC][PATCH 05/20] sched: Fixup the scheduler syscalls to deal with pspaces Eric W. Biederman
2006-02-06 19:39 ` [RFC][PATCH 06/20] cad_pid: Fixup the cad_pid users to assume it is in the initial process id namespace Eric W. Biederman
2006-02-06 19:41 ` [RFC][PATCH 07/20] tty: Update the tty layer to work with pspaces Eric W. Biederman
2006-02-06 19:44 ` [RFC][PATCH 08/20] vt: Update the virtual console to handle pspaces Eric W. Biederman
2006-02-06 19:46 ` [RFC][PATCH 09/20] ptrace: Update ptrace " Eric W. Biederman
2006-02-06 19:49 ` [RFC][PATCH 10/20] capabilities: Update the capabilities code to " Eric W. Biederman
2006-02-06 19:51 ` [RFC][PATCH 11/20] ioprio: Update ioprio " Eric W. Biederman
2006-02-06 19:54 ` [RFC][PATCH 12/20] fcntl: Update fcntl to work with pspaces Eric W. Biederman
2006-02-06 19:57 ` [RFC][PATCH 13/20] kthread: Update kthread " Eric W. Biederman
2006-02-06 19:59 ` [RFC][PATCH 14/20] mm: Update vmscan " Eric W. Biederman
2006-02-06 20:00 ` [RFC][PATCH 15/20] posix-timers: Update posix timers " Eric W. Biederman
2006-02-06 20:02 ` [PATCH 16/20] nfs: Don't use pids to track the lockd server process Eric W. Biederman
2006-02-06 20:03 ` [RFC][PATCH 17/20] usb: Fixup usb so it works with pspaces Eric W. Biederman
2006-02-06 20:05 ` [RFC][PATCH 18/20] posix-mqueue: Make mqueues work with pspspaces Eric W. Biederman
2006-02-06 20:07 ` [RFC][PATCH 19/20] pspace: Upcate the pid_max sysctl to work in a per pspace fashion Eric W. Biederman
2006-02-06 20:12 ` [RFC][PATCH 20/20] proc: Update /proc to support multiple pid spaces Eric W. Biederman
2006-02-10 20:40 ` Kirill Korotaev
2006-02-11 10:10 ` Eric W. Biederman
2006-02-06 20:41 ` [RFC][PATCH 17/20] usb: Fixup usb so it works with pspaces Serge E. Hallyn
2006-02-06 20:53 ` Eric W. Biederman
2006-02-07 16:41 ` [RFC][PATCH 04/20] pspace: Allow multiple instaces of the process id namespace William Lee Irwin III
2006-02-07 17:05 ` Eric W. Biederman
2006-02-10 20:30 ` Kirill Korotaev
2006-02-11 9:42 ` Eric W. Biederman
2006-02-11 10:11 ` Eric W. Biederman
2006-02-11 10:43 ` Eric W. Biederman
2006-02-13 8:53 ` Kirill Korotaev
2006-02-13 16:40 ` Dave Hansen
2006-02-11 11:03 ` Eric W. Biederman
2006-02-13 9:02 ` Kirill Korotaev
2006-02-13 21:31 ` Serge E. Hallyn
2006-02-13 23:41 ` Eric W. Biederman
2006-02-11 11:57 ` Eric W. Biederman
2006-02-13 9:22 ` Kirill Korotaev
2006-02-13 17:02 ` Serge E. Hallyn
2006-02-14 5:59 ` Eric W. Biederman
2006-02-14 5:54 ` Eric W. Biederman
2006-02-14 18:45 ` Dave Hansen
2006-02-15 12:07 ` Kirill Korotaev
2006-02-15 13:31 ` Herbert Poetzl
2006-02-16 13:44 ` Serge E. Hallyn
2006-02-20 9:27 ` Kirill Korotaev
2006-02-20 17:04 ` Herbert Poetzl
2006-02-21 16:29 ` Kirill Korotaev
2006-02-21 23:23 ` Herbert Poetzl
2006-02-20 11:29 ` Kirill Korotaev
2006-02-20 12:34 ` Herbert Poetzl
2006-02-20 14:11 ` Kirill Korotaev
2006-02-20 15:08 ` Herbert Poetzl
2006-03-01 22:06 ` Cedric Le Goater
2006-02-15 18:40 ` Eric W. Biederman
2006-02-06 19:56 ` [RFC][PATCH 03/20] pid: Introduce a generic helper to test for init Dave Hansen
2006-02-06 20:22 ` Eric W. Biederman
2006-02-07 15:08 ` Geert Uytterhoeven
2006-02-07 15:17 ` Eric W. Biederman
2006-02-06 19:54 ` [RFC][PATCH 01/20] pid: Intoduce the concept of a wid (wait id) Serge E. Hallyn
2006-02-06 20:23 ` Eric W. Biederman
2006-02-07 17:39 ` Jeff Dike
2006-02-07 18:32 ` Eric W. Biederman
2006-02-10 18:51 ` Kirill Korotaev
2006-02-11 9:25 ` Eric W. Biederman
2006-02-13 8:43 ` Kirill Korotaev
2006-02-14 0:04 ` Eric W. Biederman [this message]
2006-02-06 20:40 ` [RFC][PATCH 0/20] Multiple instances of the process id namespace Hubertus Franke
2006-02-06 20:51 ` Eric W. Biederman
2006-02-06 21:07 ` Hubertus Franke
2006-02-06 21:56 ` Eric W. Biederman
2006-02-07 0:48 ` Dave Hansen
2006-02-07 5:14 ` Eric W. Biederman
2006-02-07 9:33 ` Andi Kleen
2006-02-08 4:19 ` Randy.Dunlap
2006-02-08 4:28 ` Eric W. Biederman
2006-02-08 4:51 ` Randy.Dunlap
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=m1fymmvm9w.fsf@ebiederm.dsl.xmission.com \
--to=ebiederm@xmission.com \
--cc=ak@suse.de \
--cc=akpm@osdl.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=arjan@infradead.org \
--cc=benh@kernel.crashing.org \
--cc=clg@fr.ibm.com \
--cc=dev@openvz.org \
--cc=dev@sw.ru \
--cc=frankeh@watson.ibm.com \
--cc=gkurz@fr.ibm.com \
--cc=greg@kroah.com \
--cc=haveblue@us.ibm.com \
--cc=herbert@13thfloor.at \
--cc=jes@sgi.com \
--cc=jgarzik@pobox.com \
--cc=kuznet@ms2.inr.ac.ru \
--cc=linux-kernel@vger.kernel.org \
--cc=mrmacman_g4@mac.com \
--cc=riel@redhat.com \
--cc=saw@sawoct.com \
--cc=serue@us.ibm.com \
--cc=ssouhlal@FreeBSD.org \
--cc=torvalds@osdl.org \
--cc=trond.myklebust@fys.uio.no \
--cc=vserver@list.linux-vserver.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
Powered by JetHome