DragonFly BSD
DragonFly commits List (threaded) for 2012-09
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

git: kernel - Add usched_dfly algorith, set as default for now (7)


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 19 Sep 2012 11:29:31 -0700 (PDT)

commit 6f693557ce3036af2d363e05d6bc6beec109f290
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Wed Sep 19 11:25:09 2012 -0700

    kernel - Add usched_dfly algorith, set as default for now (7)
    
    * Reenable weight2 (the process pairing heuristic) and fix the
      edge cases associated with it.
    
    * Change the process pulling behavior.  Now we pull the 'worst' thread
      from some other cpu instead of the best (duh!), we only pull when a
      cpu winds up with no designated user threads, or we pull via a
      schedulerclock-implemented rover.
    
      The schedulerclock-implemented rover will allow ONE cpu to pull the
      'worst' thread across all cpus (with some locality) once every
      round-robin ticks (4 scheduler ticks).
    
      The rover is responsible for taking excess processes that are unbalancing
      one or more cpu's (for example, you have 6 running batch processes and
      only 4 cpus) and slowly moving them between cpus.  If we did not do this
      the 'good' processes running on the unbalanced cpus are put at an unfair
      disadvantage.
    
    * This should fix all known edge cases, including ramp-down edge cases.

Summary of changes:
 sys/kern/usched_dfly.c |  221 +++++++++++++++++++++++++++++++-----------------
 1 files changed, 145 insertions(+), 76 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/6f693557ce3036af2d363e05d6bc6beec109f290


-- 
DragonFly BSD source repository



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]