In looking at the performance of a workload in production, it was revealed to be doing a modest amount of vfork()'ing and exec()'ing (~5/second) from a large Java process. However, because on LX vfork() is implemented in terms of fork() (and seems to have been since PSARC/2005/471 integrated in commit 9acbbeaf2a1ffe5c14b244867d427714fab43c5c), this is taking much, much longer than it should. We should implement vfork() natively (and indeed, we already do in the CLONE_VFORK case – it seems that this should be a solvable problem.
Former user commented on 2015-12-02T16:22:41.000-0500:
illumos-joyent commit 93c2b12 (branch master, by Jerry Jelinek)
OS-4993#icft=OS-4993 lx brand: vfork() should not be implemented in terms of fork()
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>