summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_synch.c
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>1998-11-26 14:00:08 +0000
committerbde <bde@FreeBSD.org>1998-11-26 14:00:08 +0000
commit0d3ca540eaf1a42592a9e7bb4e4f2f99145d7c9d (patch)
tree14790acce7fc25f645299e88a64884d32f0489a3 /sys/kern/kern_synch.c
parent1c6d286a6231e75c69b9fa3db589cbd8cab204c8 (diff)
downloadFreeBSD-src-0d3ca540eaf1a42592a9e7bb4e4f2f99145d7c9d.zip
FreeBSD-src-0d3ca540eaf1a42592a9e7bb4e4f2f99145d7c9d.tar.gz
Fixed scaling of p_pctcpu. It was wrong by a factor of stathz/hz.
Until recently, this was half compensated for in at least ps and top by multiplying by 100/stathz to get a better wrong factor of 100/hz.
Diffstat (limited to 'sys/kern/kern_synch.c')
-rw-r--r--sys/kern/kern_synch.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/sys/kern/kern_synch.c b/sys/kern/kern_synch.c
index 2af5970..366a9d4 100644
--- a/sys/kern/kern_synch.c
+++ b/sys/kern/kern_synch.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)kern_synch.c 8.9 (Berkeley) 5/19/95
- * $Id: kern_synch.c,v 1.64 1998/10/25 19:57:23 bde Exp $
+ * $Id: kern_synch.c,v 1.65 1998/10/25 20:11:36 bde Exp $
*/
#include "opt_ktrace.h"
@@ -277,13 +277,13 @@ schedcpu(arg)
* p_pctcpu is only for ps.
*/
#if (FSHIFT >= CCPU_SHIFT)
- p->p_pctcpu += (hz == 100)?
+ p->p_pctcpu += (stathz == 100)?
((fixpt_t) p->p_cpticks) << (FSHIFT - CCPU_SHIFT):
100 * (((fixpt_t) p->p_cpticks)
- << (FSHIFT - CCPU_SHIFT)) / hz;
+ << (FSHIFT - CCPU_SHIFT)) / stathz;
#else
p->p_pctcpu += ((FSCALE - ccpu) *
- (p->p_cpticks * FSCALE / hz)) >> FSHIFT;
+ (p->p_cpticks * FSCALE / stathz)) >> FSHIFT;
#endif
p->p_cpticks = 0;
newcpu = (u_int) decay_cpu(loadfac, p->p_estcpu) + p->p_nice;
@@ -293,7 +293,7 @@ schedcpu(arg)
#define PPQ (128 / NQS) /* priorities per queue */
if ((p != curproc) &&
#ifdef SMP
- (u_char)p->p_oncpu == 0xff && /* idle */
+ p->p_oncpu == 0xff && /* idle */
#endif
p->p_stat == SRUN &&
(p->p_flag & P_INMEM) &&
@@ -635,7 +635,7 @@ mi_switch()
#ifdef SIMPLELOCK_DEBUG
if (p->p_simple_locks)
- printf("sleep: holding simple lock\n");
+ Debugger("sleep: holding simple lock\n");
#endif
/*
* Compute the amount of time during which the current
@@ -651,9 +651,9 @@ mi_switch()
*/
if (p->p_stat != SZOMB && p->p_runtime > p->p_limit->p_cpulimit) {
rlim = &p->p_rlimit[RLIMIT_CPU];
- if (p->p_runtime / (rlim_t)1000000 >= rlim->rlim_max) {
+ if (p->p_runtime / 1000000 >= rlim->rlim_max)
killproc(p, "exceeded maximum CPU limit");
- } else {
+ else {
psignal(p, SIGXCPU);
if (rlim->rlim_cur < rlim->rlim_max) {
/* XXX: we should make a private copy */
OpenPOWER on IntegriCloud