Subject: Re: new vfork(2) implementation
To: Computo Ergo Checksum <greywolf@starwolf.starwolf.com>
From: Rob Healey <rhealey@mr.net>
List: current-users
Date: 01/06/1998 17:39:41
> Jason Thorpe sez:
> /*
>  * Hi folks,
>  * 
>  * Well, with NetBSD 1.3 almost out the door (the announcement should be
>  * any time now..), it's time to start thinking about running -current
>  again * (well, for some of us :-)
>  * 
>  * ...  This new implementation will have the
>  * original 3BSD vfork semantics: a completely shared address space as well
>  * as parent blocks for child exit (contrast that to the current NetBSD
>  vfork * that came from 4.4BSD, which simply blocks the parent).
>  * 
>  * Orignally, vfork was implemented because the address space was copied at
>  * fork time.  This was a time consuming process, and a real waste if the
>  * program were to immediately exec (which would then unmap the address
>  space * so painstakenly copied just moments ago).  When copy-on-write was
>  added * to BSD (when it got the Mach VM system)...
> 
	Question:

	Is the new vfork() really the right answer to the problem, i.e.
	would we be better off finding the reasons why the VM/fork() is
	so damn slow and fixing that rather than just rehashing vfork()?

	vfork() has always struck me as having way too many "gotcha's" to
	remember, getting VM/fork() speeded up in general would seem a
	better long term solution.

	Just wondering,

		-Rob