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