diff options
author | ume <ume@FreeBSD.org> | 2001-01-23 14:32:01 +0000 |
---|---|---|
committer | ume <ume@FreeBSD.org> | 2001-01-23 14:32:01 +0000 |
commit | 1ae749987d8130c6c5c01d3fb7df1cdb59ae0ea4 (patch) | |
tree | fe812ab278da705aa2336824ba5a950b2eea1b7e /sys/kern | |
parent | 52c12909ebc46a4969c5a8b54e24f66294303a52 (diff) | |
download | FreeBSD-src-1ae749987d8130c6c5c01d3fb7df1cdb59ae0ea4.zip FreeBSD-src-1ae749987d8130c6c5c01d3fb7df1cdb59ae0ea4.tar.gz |
Add mibs to hold the number of forks since boot. New mibs are:
vm.stats.vm.v_forks
vm.stats.vm.v_vforks
vm.stats.vm.v_rforks
vm.stats.vm.v_kthreads
vm.stats.vm.v_forkpages
vm.stats.vm.v_vforkpages
vm.stats.vm.v_rforkpages
vm.stats.vm.v_kthreadpages
Submitted by: Paul Herman <pherman@frenchfries.net>
Reviewed by: alfred
Diffstat (limited to 'sys/kern')
-rw-r--r-- | sys/kern/kern_fork.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/sys/kern/kern_fork.c b/sys/kern/kern_fork.c index 9dc8ec3..e8f8a60 100644 --- a/sys/kern/kern_fork.c +++ b/sys/kern/kern_fork.c @@ -65,6 +65,7 @@ #include <vm/vm_extern.h> #include <vm/vm_zone.h> +#include <sys/vmmeter.h> #include <sys/user.h> static MALLOC_DEFINE(M_ATFORK, "atfork", "atfork callback"); @@ -517,6 +518,20 @@ again: */ vm_fork(p1, p2, flags); + if (flags == (RFFDG | RFPROC)) { + cnt.v_forks++; + cnt.v_forkpages += p2->p_vmspace->vm_dsize + p2->p_vmspace->vm_ssize; + } else if (flags == (RFFDG | RFPROC | RFPPWAIT | RFMEM)) { + cnt.v_vforks++; + cnt.v_vforkpages += p2->p_vmspace->vm_dsize + p2->p_vmspace->vm_ssize; + } else if (p1 == &proc0) { + cnt.v_kthreads++; + cnt.v_kthreadpages += p2->p_vmspace->vm_dsize + p2->p_vmspace->vm_ssize; + } else { + cnt.v_rforks++; + cnt.v_rforkpages += p2->p_vmspace->vm_dsize + p2->p_vmspace->vm_ssize; + } + /* * Both processes are set up, now check if any loadable modules want * to adjust anything. |