Module Name: src Committed By: bouyer Date: Sat Jun 6 22:12:44 UTC 2009
Modified Files: src/sys/kern [netbsd-5]: sched_4bsd.c Log Message: Pull up following revision(s) (requested by rmind in ticket #791): sys/kern/sched_4bsd.c: revision 1.25 sched_pstats_hook: fix estcpu decay. this makes my desktop usable when running "make -j4". To generate a diff of this commit: cvs rdiff -u -r1.24 -r1.24.4.1 src/sys/kern/sched_4bsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/kern/sched_4bsd.c diff -u src/sys/kern/sched_4bsd.c:1.24 src/sys/kern/sched_4bsd.c:1.24.4.1 --- src/sys/kern/sched_4bsd.c:1.24 Tue Oct 7 09:48:27 2008 +++ src/sys/kern/sched_4bsd.c Sat Jun 6 22:12:44 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: sched_4bsd.c,v 1.24 2008/10/07 09:48:27 rmind Exp $ */ +/* $NetBSD: sched_4bsd.c,v 1.24.4.1 2009/06/06 22:12:44 bouyer Exp $ */ /*- * Copyright (c) 1999, 2000, 2004, 2006, 2007, 2008 The NetBSD Foundation, Inc. @@ -68,7 +68,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sched_4bsd.c,v 1.24 2008/10/07 09:48:27 rmind Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sched_4bsd.c,v 1.24.4.1 2009/06/06 22:12:44 bouyer Exp $"); #include "opt_ddb.h" #include "opt_lockdebug.h" @@ -288,17 +288,22 @@ void sched_pstats_hook(struct lwp *l, int batch) { + fixpt_t loadfac; /* * If the LWP has slept an entire second, stop recalculating * its priority until it wakes up. */ KASSERT(lwp_locked(l, NULL)); - if (l->l_slptime > 0) { - fixpt_t loadfac = 2 * (averunnable.ldavg[0]); - l->l_estcpu = decay_cpu(loadfac, l->l_estcpu); - resetpriority(l); + if (l->l_stat == LSSLEEP || l->l_stat == LSSTOP || + l->l_stat == LSSUSPENDED) { + if (l->l_slptime > 1) { + return; + } } + loadfac = 2 * (averunnable.ldavg[0]); + l->l_estcpu = decay_cpu(loadfac, l->l_estcpu); + resetpriority(l); } /*