summary |
tags |
clone url |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
d85d5cf)
SCCS-vsn: sys/kern/kern_clock.c 3.20
SCCS-vsn: sys/kern/kern_proc.c 3.25
SCCS-vsn: sys/kern/kern_synch.c 3.15
-/* %H% 3.19 kern_clock.c */
+/* %H% 3.20 kern_clock.c */
#include "../h/param.h"
#include "../h/systm.h"
#include "../h/param.h"
#include "../h/systm.h"
+/*
+ * Constant for decay filter for cpu usage.
+ */
+double ccpu = 0.93550698503161773774; /* exp(-1/15) */
- * clock is called straight from
+ * Clock is called straight from
* the real time clock interrupt.
*
* Functions:
* the real time clock interrupt.
*
* Functions:
dk_time[cpstate][dk_busy&(DK_NSTATES-1)]++;
if (!noproc) {
pp = u.u_procp;
dk_time[cpstate][dk_busy&(DK_NSTATES-1)]++;
if (!noproc) {
pp = u.u_procp;
if(++pp->p_cpu == 0)
pp->p_cpu--;
if(pp->p_cpu % 16 == 0) {
if(++pp->p_cpu == 0)
pp->p_cpu--;
if(pp->p_cpu % 16 == 0) {
if(pp->p_stat==SSLEEP||pp->p_stat==SSTOP)
if (pp->p_slptime != 127)
pp->p_slptime++;
if(pp->p_stat==SSLEEP||pp->p_stat==SSTOP)
if (pp->p_slptime != 127)
pp->p_slptime++;
- if(pp->p_flag&SLOAD) {
- ave(pp->p_aveflt, pp->p_faults, 5);
- pp->p_faults = 0;
- }
+ if (pp->p_flag&SLOAD)
+ pp->p_pctcpu = ccpu * pp->p_pctcpu +
+ (1.0 - ccpu) * (pp->p_cpticks/(float)HZ);
+ pp->p_cpticks = 0;
a = (pp->p_cpu & 0377)*SCHMAG + pp->p_nice - NZERO;
if(a < 0)
a = 0;
a = (pp->p_cpu & 0377)*SCHMAG + pp->p_nice - NZERO;
if(a < 0)
a = 0;
-/* kern_proc.c 3.24 %G% */
+/* kern_proc.c 3.25 %G% */
#include "../h/param.h"
#include "../h/systm.h"
#include "../h/param.h"
#include "../h/systm.h"
else
p->p_siga1 = 0;
(void) spl0();
else
p->p_siga1 = 0;
(void) spl0();
+ p->p_cpticks = 0;
+ p->p_pctcpu = 0;
for(i=0; i<NSIG; i++)
u.u_signal[i] = SIG_IGN;
/*
for(i=0; i<NSIG; i++)
u.u_signal[i] = SIG_IGN;
/*
-/* kern_synch.c 3.14 %G% */
+/* kern_synch.c 3.15 %G% */
#include "../h/param.h"
#include "../h/systm.h"
#include "../h/param.h"
#include "../h/systm.h"
rpp->p_rssize = 0;
rpp->p_wchan = 0;
rpp->p_slptime = 0;
rpp->p_rssize = 0;
rpp->p_wchan = 0;
rpp->p_slptime = 0;
- rpp->p_aveflt = rip->p_aveflt;
- rpp->p_faults = 0;
+ rpp->p_pctcpu = 0;
+ rpp->p_cpticks = 0;
n = PIDHASH(rpp->p_pid);
p->p_idhash = pidhash[n];
pidhash[n] = rpp - proc;
n = PIDHASH(rpp->p_pid);
p->p_idhash = pidhash[n];
pidhash[n] = rpp - proc;