cvs commit: src/sys/kern kern_synch.c subr_param.c usched_bsd4.c src/sys/sys param.h proc.h usched.h src/sys/dev/netif/iwi if_iwi.c src/sys/dev/netif/ndis if_ndis.c src/sys/dev/raid/twa twa.c src/sys/dev/raid/twe twe.c

Matthew Dillon dillon at crater.dragonflybsd.org
Sun Jun 26 15:07:07 PDT 2005


dillon      2005/06/26 15:03:29 PDT

DragonFly src repository

  Modified files:
    sys/kern             kern_synch.c subr_param.c usched_bsd4.c 
    sys/sys              param.h proc.h usched.h 
    sys/dev/netif/iwi    if_iwi.c 
    sys/dev/netif/ndis   if_ndis.c 
    sys/dev/raid/twa     twa.c 
    sys/dev/raid/twe     twe.c 
  Log:
  Move more scheduler-specific defines from various places into usched_bsd4.c
  and revamp our scheduler algorithms.
  
  * Get rid of the multiple layers of abstraction in the nice and frequency
    calculations.
  
  * Increase the scheduling freqency from 20hz to 50hz.
  
  * Greatly reduce the number of scheduling ticks that occur before a
    reschedule is issued.
  
  * Fix a bug where the scheduler was not rescheduling when estcpu drops
    a process into a lower priority queue.
  
  * Implement a new batch detection algorithm.  This algorithm gives
    forked children slightly more batchness then their parents (which
    is recovered quickly if the child is interactive), and propogates
    estcpu data from exiting children to future forked children (which
    handles fork/exec/wait loops such as used by make, scripts, etc).
  
  * Change the way NICE priorities effect process execution.  The NICE
    value is used in two ways:  First, it determines the initial process
    priority.  The estcpu will have a tendancy to correct for this so the NICE
    value is also used to control estcpu's decay rate.
  
    This means that niced processes will have both an initial penalty for
    startup and stabilization, and an ongoing penalty if they become cpu
    bound.
  
  Examples from cpu-bound loops:
  
  CPU PRI  NI   PID %CPU      TIME COMMAND
   42 159 -20   706 20.5   0:38.88 /bin/csh /tmp/dowhile
   37 159 -15   704 17.6   0:35.09 /bin/csh /tmp/dowhile
   29 157 -10   702 15.3   0:30.41 /bin/csh /tmp/dowhile
   28 160  -5   700 13.0   0:26.73 /bin/csh /tmp/dowhile
   23 160   0   698 11.5   0:20.52 /bin/csh /tmp/dowhile
   18 160   5   696  9.2   0:16.85 /bin/csh /tmp/dowhile
   13 160  10   694  7.1   0:10.82 /bin/csh /tmp/dowhile
    3 160  20   692  1.5   0:02.14 /bin/csh /tmp/dowhile
  
  Revision  Changes    Path
  1.46      +57 -45    src/sys/kern/kern_synch.c
  1.7       +1 -1      src/sys/kern/subr_param.c
  1.27      +69 -58    src/sys/kern/usched_bsd4.c
  1.24      +0 -13     src/sys/sys/param.h
  1.60      +5 -31     src/sys/sys/proc.h
  1.3       +2 -3      src/sys/sys/usched.h
  1.4       +1 -1      src/sys/dev/netif/iwi/if_iwi.c
  1.6       +1 -1      src/sys/dev/netif/ndis/if_ndis.c
  1.4       +1 -1      src/sys/dev/raid/twa/twa.c
  1.11      +1 -1      src/sys/dev/raid/twe/twe.c


http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_synch.c.diff?r1=1.45&r2=1.46&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/subr_param.c.diff?r1=1.6&r2=1.7&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/usched_bsd4.c.diff?r1=1.26&r2=1.27&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/param.h.diff?r1=1.23&r2=1.24&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/proc.h.diff?r1=1.59&r2=1.60&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/usched.h.diff?r1=1.2&r2=1.3&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/iwi/if_iwi.c.diff?r1=1.3&r2=1.4&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/ndis/if_ndis.c.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/raid/twa/twa.c.diff?r1=1.3&r2=1.4&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/raid/twe/twe.c.diff?r1=1.10&r2=1.11&f=u





More information about the Commits mailing list