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