Subject: PR/31542 CVS commit: src/sys
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: YAMAMOTO Takashi <yamt@netbsd.org>
List: netbsd-bugs
Date: 11/01/2005 09:08:01
The following reply was made to PR kern/31542; it has been noted by GNATS.

From: YAMAMOTO Takashi <yamt@netbsd.org>
To: gnats-bugs@netbsd.org
Cc: 
Subject: PR/31542 CVS commit: src/sys
Date: Tue,  1 Nov 2005 09:07:53 +0000 (UTC)

 Module Name:	src
 Committed By:	yamt
 Date:		Tue Nov  1 09:07:53 UTC 2005
 
 Modified Files:
 	src/sys/kern: kern_synch.c
 	src/sys/sys: proc.h
 
 Log Message:
 make scheduler work better when a system has many runnable processes
 by making p_estcpu fixpt_t.  PR/31542.
 
 1. schedcpu() decreases p_estcpu of all processes
    every seconds, by at least 1 regardless of load average.
 2. schedclock() increases p_estcpu of curproc by 1,
    at about 16 hz.
 
 in the consequence, if a system has >16 processes
 with runnable lwps, their p_estcpu are not likely increased.
 
 by making p_estcpu fixpt_t, we can decay it more slowly
 when loadavg is high.  (ie. solve #1.)
 
 i left kinfo_proc2::p_estcpu (ie. ps -O cpu) scaled because i have
 no idea about its absolute value's usage other than debugging,
 for which raw values are more valuable.
 
 
 To generate a diff of this commit:
 cvs rdiff -r1.152 -r1.153 src/sys/kern/kern_synch.c
 cvs rdiff -r1.206 -r1.207 src/sys/sys/proc.h
 
 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.