summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authoriedowse <iedowse@FreeBSD.org>2001-10-20 13:10:43 +0000
committeriedowse <iedowse@FreeBSD.org>2001-10-20 13:10:43 +0000
commit03bd269b0899fdb2d1b7556e544aa8c6e9bf0dfd (patch)
tree8ced6dd43c7824877be01d746a8de6b1bdfd0963 /sys/vm
parent6d757ee04c83c073886837db363ab65da13a40d4 (diff)
downloadFreeBSD-src-03bd269b0899fdb2d1b7556e544aa8c6e9bf0dfd.zip
FreeBSD-src-03bd269b0899fdb2d1b7556e544aa8c6e9bf0dfd.tar.gz
Move the code that computes the system load average from vm_meter.c
to kern_synch.c in preparation for adding some jitter to the inter-sample time. Note that the "vm.loadavg" sysctl still lives in vm_meter.c which isn't the right place, but it is appropriate for the current (bad) name of that sysctl. Suggested by: jhb (some time ago) Reviewed by: bde
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vm_extern.h1
-rw-r--r--sys/vm/vm_meter.c55
2 files changed, 0 insertions, 56 deletions
diff --git a/sys/vm/vm_extern.h b/sys/vm/vm_extern.h
index 79bd5d8..7f24e11 100644
--- a/sys/vm/vm_extern.h
+++ b/sys/vm/vm_extern.h
@@ -85,7 +85,6 @@ void vm_waitproc __P((struct proc *));
int vm_mmap __P((vm_map_t, vm_offset_t *, vm_size_t, vm_prot_t, vm_prot_t, int, void *, vm_ooffset_t));
vm_offset_t vm_page_alloc_contig __P((vm_offset_t, vm_offset_t, vm_offset_t, vm_offset_t));
void vm_set_page_size __P((void));
-void vmmeter __P((void));
struct vmspace *vmspace_alloc __P((vm_offset_t, vm_offset_t));
struct vmspace *vmspace_fork __P((struct vmspace *));
void vmspace_exec __P((struct proc *));
diff --git a/sys/vm/vm_meter.c b/sys/vm/vm_meter.c
index ac1e769..23ad97b 100644
--- a/sys/vm/vm_meter.c
+++ b/sys/vm/vm_meter.c
@@ -53,65 +53,10 @@
#include <vm/vm_object.h>
#include <sys/sysctl.h>
-struct loadavg averunnable =
- { {0, 0, 0}, FSCALE }; /* load average, of runnable procs */
-
struct vmmeter cnt;
int maxslp = MAXSLP;
-/*
- * Constants for averages over 1, 5, and 15 minutes
- * when sampling at 5 second intervals.
- */
-static fixpt_t cexp[3] = {
- 0.9200444146293232 * FSCALE, /* exp(-1/12) */
- 0.9834714538216174 * FSCALE, /* exp(-1/60) */
- 0.9944598480048967 * FSCALE, /* exp(-1/180) */
-};
-
-/*
- * Compute a tenex style load average of a quantity on
- * 1, 5 and 15 minute intervals.
- * XXXKSE Needs complete rewrite when correct info is available.
- * Completely Bogus.. only works with 1:1 (but compiles ok now :-)
- */
-static void
-loadav(struct loadavg *avg)
-{
- int i, nrun;
- struct proc *p;
- struct ksegrp *kg;
-
- sx_slock(&allproc_lock);
- nrun = 0;
- FOREACH_PROC_IN_SYSTEM(p) {
- FOREACH_KSEGRP_IN_PROC(p, kg) {
- switch (p->p_stat) {
- case SRUN:
- if ((p->p_flag & P_NOLOAD) != 0)
- goto nextproc;
- /* FALLTHROUGH */
- case SIDL:
- nrun++;
- }
-nextproc:
- }
- }
- sx_sunlock(&allproc_lock);
- for (i = 0; i < 3; i++)
- avg->ldavg[i] = (cexp[i] * avg->ldavg[i] +
- nrun * FSCALE * (FSCALE - cexp[i])) >> FSHIFT;
-}
-
-void
-vmmeter()
-{
-
- if (time_second % 5 == 0)
- loadav(&averunnable);
-}
-
SYSCTL_UINT(_vm, VM_V_FREE_MIN, v_free_min,
CTLFLAG_RW, &cnt.v_free_min, 0, "");
SYSCTL_UINT(_vm, VM_V_FREE_TARGET, v_free_target,
OpenPOWER on IntegriCloud