git: kernel - Improve vfork/exec and wait*() performance
Matthew Dillon
dillon at crater.dragonflybsd.org
Thu Oct 24 13:43:29 PDT 2013
commit 51818c080ae8be00bbd3d0bb4d584ac82a1fb9ec
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Thu Oct 24 12:03:23 2013 -0700
kernel - Improve vfork/exec and wait*() performance
* Use a flags interlock instead of a token interlock for PPWAIT for
vfork/exec (handling when the parent must wait for the child to
finish exec'ing).
* The exit1() code must wakeup the parent's wait*()'s. Delay the wakeup
until after the token has been released.
* Change thet interlock in the parent's wait*() code to use a generation
counter.
* Do not wakeup p_nthreads on exit if the program was never multi-threaded,
saving a few cycles.
Summary of changes:
sys/kern/kern_exec.c | 7 ++--
sys/kern/kern_exit.c | 100 ++++++++++++++++++++++++++++++++-------------------
sys/kern/kern_fork.c | 39 +++++++++++---------
sys/kern/kern_proc.c | 53 +++++++++++++++++++--------
sys/sys/proc.h | 14 +++-----
5 files changed, 135 insertions(+), 78 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/51818c080ae8be00bbd3d0bb4d584ac82a1fb9ec
--
DragonFly BSD source repository
More information about the Commits
mailing list