diff options
author | David Greenman <dg@FreeBSD.org> | 1994-09-12 11:27:03 +0000 |
---|---|---|
committer | David Greenman <dg@FreeBSD.org> | 1994-09-12 11:27:03 +0000 |
commit | d5c4431e765b02b0f862d2fb6be66e07bc485b38 (patch) | |
tree | 416932c2bce7f5296b43bbbe5dd40bca205a9ba7 /sys/kern/kern_exit.c | |
parent | 96a4f68bd437d1c43e1284a2770aab710f73c2f7 (diff) | |
download | src-d5c4431e765b02b0f862d2fb6be66e07bc485b38.tar.gz src-d5c4431e765b02b0f862d2fb6be66e07bc485b38.zip |
Limit p_estcpu to UCHAR_MAX to keep it within reasonable bounds - else
it goes crazy (into the billions) during any lengthy build.
Submitted by: John Dyson, modified slightly by me.
Notes
Notes:
svn path=/head/; revision=2687
Diffstat (limited to 'sys/kern/kern_exit.c')
-rw-r--r-- | sys/kern/kern_exit.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/kern/kern_exit.c b/sys/kern/kern_exit.c index 75076d785055..5fe6faadad94 100644 --- a/sys/kern/kern_exit.c +++ b/sys/kern/kern_exit.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)kern_exit.c 8.7 (Berkeley) 2/12/94 - * $Id: kern_exit.c,v 1.4 1994/08/06 07:15:03 davidg Exp $ + * $Id: kern_exit.c,v 1.5 1994/08/24 11:50:39 sos Exp $ */ #include <sys/param.h> @@ -369,8 +369,10 @@ loop: #endif if (p->p_stat == SZOMB) { /* charge childs scheduling cpu usage to parent */ - if( curproc->p_pid != 1) - curproc->p_estcpu += p->p_estcpu; + if (curproc->p_pid != 1) { + curproc->p_estcpu = min(curproc->p_estcpu + + p->p_estcpu, UCHAR_MAX); + } retval[0] = p->p_pid; #if defined(COMPAT_43) || defined(IBCS2) |