Date: Sun, 21 Mar 1999 18:02:02 +0000 (GMT) From: Brian Feldman <green@unixhelp.org> To: Matthew Dillon <dillon@apollo.backplane.com> Cc: Alfred Perlstein <bright@rush.net>, "John S. Dyson" <dyson@iquest.net>, samit@usa.ltindia.com, commiters@FreeBSD.ORG, freebsd-current@FreeBSD.ORG Subject: Re: rfork() Message-ID: <Pine.BSF.4.05.9903211752040.2767-100000@zone.syracuse.net> In-Reply-To: <199903211721.JAA13495@apollo.backplane.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 21 Mar 1999, Matthew Dillon wrote:
> :Hence the NEW flag RFSTACK. Why would this be a bad thing? This would keep
> :the old behavior and allow much nicer new behavior. I didn't suggest
> :changing the old behavior. This would just greatly simplify things so all of
>
> I think Richard Seaman has it right: the stack needs to be passed.
>
> Why don't we simply implement the linux clone()? It sounds to me that
> it would be trivial.
Let's add another parameter to fork1/rfork():
pid_t rfork __P((int, ...)); for userland
struct rfork_args { int flags; caddr_t extra; };
and in the kernel would be:
fork1(p1, flags)
register struct proc *p1;
int flags;
caddr_t extra;
{ foo
}
We, of course, have backward binary and code compatibility outside of the
kernel with the ellipses, and inside the kernel we control it anyway so we
can modify whatever needs to be changed.
>
> :the assembly wouldn't be needed. Hmm... actually... if one were to mmap() a
> :stack and as soon as the rfork() returned movl newstack,%esp and whatnot,
> :wouldn't this be a pretty simple solution?
>
> No, because one of the processes may overrun the stack before the other
> one managed to return from rfork(). The child process cannot use the
> old stack at all.
Why would a simple movl be using the stack?
>
> Matthew Dillon
> <dillon@backplane.com>
>
>
>
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-current" in the body of the message
>
Brian Feldman _ __ ___ ___ ___
green@unixhelp.org _ __ ___ | _ ) __| \
http://www.freebsd.org/ _ __ ___ ____ | _ \__ \ |) |
FreeBSD: The Power to Serve! _ __ ___ ____ _____ |___/___/___/
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.05.9903211752040.2767-100000>
