git: kernel - Greatly reduce usched_bsd4_decay default

Matthew Dillon dillon at crater.dragonflybsd.org
Thu Feb 10 13:23:13 PST 2011


commit 5c559233582a8c95893c37a28c5c9798afebe3dc
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Thu Feb 10 13:15:51 2011 -0800

    kernel - Greatly reduce usched_bsd4_decay default
    
    * Reduce the usched_bsd4_decay default to 1.  It may be removed entirely
      in the future.
    
    * This improves the dynamic priority handling by reducing ad-hoc estcpu
      decreases from the 1-second interval clock.  The tsleep code handles
      this a lot better already and the ad-hoc decreases don't do a good job
      handling the case where there are a very large number of runnable
      cpu-bound processes (because they don't actually get a lot of cpu but
      still eat a large proportion of the scheduled time in aggregate).
    
      Tested with blogbench during stage 1.  Prior to this fix the 100+ blogbench
      threads were being dropped down to almost realtime priorities even though
      they remained in a 100% 'R'un state.
    
    * Also reduce the amount the parent process of a fork() is docked for cpu
      due to the fork.  The value was high enough that interactive sessions were
      being pushed up to batch priorities with only a moderate number of forks
      and not decaying quickly enough to stabilize.
    
      The child process is docked the same as before (handling the fork chaining
      case).
    
      Tested with blogbench and parallel makes of /usr/src/lib/libc.  The
      blogbench uniformly increases to batch priority and didn't need the
      higher boost the old values gave it while the parallel compile's fork
      chaining gave it a good shove towards batch priority while the repeated
      forks slowly pushed the higher level make and /bin/sh's to more batch-like
      priorities.

Summary of changes:
 sys/kern/usched_bsd4.c |   43 ++++++++++++++++++++++++++++++-------------
 1 files changed, 30 insertions(+), 13 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/5c559233582a8c95893c37a28c5c9798afebe3dc


-- 
DragonFly BSD source repository





More information about the Commits mailing list