From: Linus Torvalds <torvalds@linux-foundation.org>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: Arjan van de Ven <arjan@infradead.org>,
Roland McGrath <roland@redhat.com>,
Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>,
Arnd Bergmann <arnd@arndb.de>,
Containers <containers@lists.linux-foundation.org>,
Nathan Lynch <nathanl@austin.ibm.com>,
linux-kernel@vger.kernel.org,
"Eric W. Biederman" <ebiederm@xmission.com>,
mingo@elte.hu, Alexey Dobriyan <adobriyan@gmail.com>,
Pavel Emelyanov <xemul@openvz.org>,
linux-api@vger.kernel.org, kosaki.motohiro@jp.fujitsu.com
Subject: Re: [RFC][v7][PATCH 8/9]: Define clone2() syscall
Date: Tue, 29 Sep 2009 15:11:03 -0700 (PDT) [thread overview]
Message-ID: <alpine.LFD.2.01.0909291501530.6996@localhost.localdomain> (raw)
In-Reply-To: <4AC267C7.4070300@zytor.com>
On Tue, 29 Sep 2009, H. Peter Anvin wrote:
>
> That's not the main issue here, though. The main issue is that the
> prototype of the function now depends on one of its arguments
Ok, I agree with that. The kernel side is easy (we have magic calling
conventions there and need to turn registers into arguments anyway before
you get to the shared code), but your point about the user side prototype
is valid.
However, that could easily be handled by just having a extended_clone()
prototype that then sets the CLONE_EXTINFO (or whatever) bit in the flags.
I think most of the time the clone() stuff needs special user-level
wrappers anyway to handle the stack setup etc, no?
In other words, what I'd suggest we could do is
- the kernel "do_fork()" interface would be made to have the "extended"
format by default - so the _kernel_ never has two formats in its
generic logic.
- the "sys_clone()" system call, that already needs to munge the user
mode registers into the "do_fork()" format, would be the one that
recognizes the new flag and copies the extended data from user mode
memory to the extended info mode.
Then each architecture would need to update it's "sys_clone()" function to
take advantage of the new extended format, but that's something that the
new system call would have had to do anyway, so that's not an added burden
in any way.
Hmm?
I don't feel horribly strongly about this, and as far as I'm concerned
it's fine to also do it as a new system call too (we already have 'fork()'
and 'vfork()' as special case interfaces to do_fork() - the new 'extended
clone' would be no different).
I just think that Roland is correct that if the new extended fork handles
the "no new info" case itself _anyway_, then there is no upside to making
it a new system call, since the complexity is the same as just extending
the old one.
Linus
next prev parent reply other threads:[~2009-09-29 22:11 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-24 16:55 [RFC][v7][PATCH 0/9] Implement clone2() system call Sukadev Bhattiprolu
2009-09-24 17:00 ` [RFC][v7][PATCH 1/9]: Factor out code to allocate pidmap page Sukadev Bhattiprolu
2009-09-24 17:00 ` [RFC][v7][PATCH 2/9]: Have alloc_pidmap() return actual error code Sukadev Bhattiprolu
2009-09-24 17:01 ` [RFC][v7][PATCH 3/9] Make pid_max a pid_ns property Sukadev Bhattiprolu
2009-09-24 17:45 ` Oren Laadan
2009-09-24 17:01 ` [RFC][v7][PATCH 4/9]: Add target_pid parameter to alloc_pidmap() Sukadev Bhattiprolu
2009-09-24 17:47 ` Oren Laadan
2009-09-24 17:01 ` [RFC][v7][PATCH 5/9]: Add target_pids parameter to alloc_pid() Sukadev Bhattiprolu
2009-09-24 17:02 ` [RFC][v7][PATCH 6/9]: Add target_pids parameter to copy_process() Sukadev Bhattiprolu
2009-09-24 17:02 ` [RFC][v7][PATCH 7/9]: Define do_fork_with_pids() Sukadev Bhattiprolu
2009-09-24 17:03 ` [RFC][v7][PATCH 8/9]: Define clone2() syscall Sukadev Bhattiprolu
2009-09-24 21:43 ` Arnd Bergmann
2009-09-25 8:23 ` Louis Rilling
2009-09-25 10:56 ` Louis Rilling
2009-09-29 18:05 ` Sukadev Bhattiprolu
2009-09-29 18:40 ` Roland McGrath
2009-09-29 18:44 ` H. Peter Anvin
2009-09-29 19:02 ` Arjan van de Ven
2009-09-29 19:10 ` Linus Torvalds
2009-09-29 20:02 ` H. Peter Anvin
2009-09-29 22:11 ` Linus Torvalds [this message]
2009-09-29 22:19 ` H. Peter Anvin
2009-09-30 16:15 ` Arnd Bergmann
2009-09-30 16:27 ` Linus Torvalds
2009-09-30 17:59 ` Arnd Bergmann
2009-09-30 19:14 ` Linus Torvalds
2009-09-30 6:48 ` Roland McGrath
2009-09-29 20:00 ` H. Peter Anvin
2009-09-29 21:58 ` Oren Laadan
2009-09-24 17:03 ` [RFC][v7][PATCH 9/9]: Document " Sukadev Bhattiprolu
2009-09-24 18:05 ` Randy Dunlap
2009-09-25 2:31 ` KOSAKI Motohiro
2009-09-24 17:44 ` [RFC][v7][PATCH 0/9] Implement clone2() system call Oren Laadan
2009-09-24 20:15 ` Sukadev Bhattiprolu
2009-09-24 22:06 ` Oren Laadan
2009-09-24 22:21 ` Arnd Bergmann
2009-09-24 23:19 ` Oren Laadan
2009-10-01 2:36 ` Sukadev Bhattiprolu
2009-10-01 15:19 ` Oren Laadan
2009-09-24 17:57 ` Alexey Dobriyan
2009-09-24 18:35 ` Serge E. Hallyn
2009-09-30 5:34 ` Alexey Dobriyan
2009-09-30 17:41 ` Oren Laadan
2009-10-02 20:27 ` Alexey Dobriyan
2009-10-02 21:06 ` Oren Laadan
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=alpine.LFD.2.01.0909291501530.6996@localhost.localdomain \
--to=torvalds@linux-foundation.org \
--cc=adobriyan@gmail.com \
--cc=arjan@infradead.org \
--cc=arnd@arndb.de \
--cc=containers@lists.linux-foundation.org \
--cc=ebiederm@xmission.com \
--cc=hpa@zytor.com \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-api@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=nathanl@austin.ibm.com \
--cc=roland@redhat.com \
--cc=sukadev@linux.vnet.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
Powered by JetHome