git: kernel - Add usched_dfly algorith, set as default for now (8)
dillon at crater.dragonflybsd.org
Wed Sep 19 21:42:07 PDT 2012
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Wed Sep 19 21:37:18 2012 -0700
kernel - Add usched_dfly algorith, set as default for now (8)
* Fix additional edge cases, in particular improving the process pairing
algorithm to reduce flapping.
* Reorder conditionals in dd->uschedcp assignment to improve the hot path.
* Rewrite the balancing rover. The rover will now move one process per
tick from a very heavily loaded cpu queue to a lightly loaded cpu queue.
Each cpu target is iterated by the rover, one target per tick.
* Reformulate dfly_chooseproc_locked() and friends. Add a capability to
choose the 'worst' process (from the end of the queue), which is used
by the rover.
* When pulling a random thread we require the queue it is taken from to
be MUCH more heavily loaded than our own queue, which avoids ping-ponging
processes back and forth when the load is not balanced against the number
of cpu cores (e.g. 6 servers, 4 cores).
Summary of changes:
sys/kern/usched_dfly.c | 427 +++++++++++++++++++++++++++---------------------
1 files changed, 239 insertions(+), 188 deletions(-)
DragonFly BSD source repository
More information about the Commits