diff options
| author | Hajimu UMEMOTO <ume@FreeBSD.org> | 2001-02-18 15:41:11 +0000 |
|---|---|---|
| committer | Hajimu UMEMOTO <ume@FreeBSD.org> | 2001-02-18 15:41:11 +0000 |
| commit | ea6ca37b4c6e3e449404b0e4f904403fc774a8a5 (patch) | |
| tree | 302bb5f1bb6500bbd17f3b67e7f09984bd78bbf3 /sys/kern/kern_fork.c | |
| parent | 1e5a70b33d3e6df9f797038efcacd6e6be681218 (diff) | |
Notes
Diffstat (limited to 'sys/kern/kern_fork.c')
| -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 a7c2a5d96b25..994baac5779a 100644 --- a/sys/kern/kern_fork.c +++ b/sys/kern/kern_fork.c @@ -63,6 +63,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"); @@ -485,6 +486,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. |
