git: kernel - Improve regressions in usched_dfly (2)
Matthew Dillon
dillon at crater.dragonflybsd.org
Thu Sep 20 11:38:44 PDT 2012
commit 76568a7ceba9ae2af1d1a9b0f75699b1e1ef5e4b
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Thu Sep 20 11:35:21 2012 -0700
kernel - Improve regressions in usched_dfly (2)
* Allow various fork() behaviors to be supported via
kern.usched_dfly.features.
* Set the default to place the newly forked process on
a random cpu instead of the current cpu.
The bsd4 scheduler had a global queue and could just signal
a random helper to pick up the thread. The dfly scheduler
has per-cpu queues and must actually enqueue the thread to
another cpu.
The bsd4 scheduler is still slightly superior here because
if the parent running on the current cpu immediately waits
for the child, the child is able to run on the current cpu.
However, randomization works quite well and this removes
nearly all of the make -j N regression.
Summary of changes:
sys/kern/usched_dfly.c | 31 +++++++++++++++++++++++++------
1 files changed, 25 insertions(+), 6 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/76568a7ceba9ae2af1d1a9b0f75699b1e1ef5e4b
--
DragonFly BSD source repository
More information about the Commits
mailing list