git: kernel - usched_dfly revamp
Matthew Dillon
dillon at crater.dragonflybsd.org
Fri Sep 21 16:13:09 PDT 2012
commit de4d4cb09ddef3daf05c2758cd2962bc7349e746
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Fri Sep 21 16:09:25 2012 -0700
kernel - usched_dfly revamp
* NOTE: This introduces a few regressions at high loads. They've been
identified and will be fixed in another iteration.
We've identified an issue with weight2. When weight2 successfully
schedules a process pair on the same cpu it can lead to inefficiencies
elsewhere in the scheduler related to user-mode and kernel-mode
priority switching. In this situation testing pgbench/postgres pairs
(e.g. -j $ncpus -c $ncpus) we sometimes see some serious regressions on
multi-socket machines, and other times see remarkably high performance.
* Fix a reported panic.
* Revamp the weights and algorithms signficantly. Fix algorithmic errors
and improve the accuracy of weight3. Add weight4 which basically tells
the scheduler to try harder to find a free cpu to schedule the lwp on
when the current cpu is busy doing something else.
Summary of changes:
sys/kern/kern_clock.c | 5 +-
sys/kern/kern_synch.c | 20 +-
sys/kern/kern_usched.c | 18 ++
sys/kern/lwkt_thread.c | 6 +
sys/kern/usched_bsd4.c | 17 +-
sys/kern/usched_dfly.c | 595 +++++++++++++++++++++++++----------------------
sys/kern/usched_dummy.c | 19 +-
sys/sys/globaldata.h | 5 +-
sys/sys/proc.h | 1 +
sys/sys/usched.h | 1 +
10 files changed, 374 insertions(+), 313 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/de4d4cb09ddef3daf05c2758cd2962bc7349e746
--
DragonFly BSD source repository
More information about the Commits
mailing list