aboutsummaryrefslogtreecommitdiff
path: root/lib/libkvm
diff options
context:
space:
mode:
authorSean Bruno <sbruno@FreeBSD.org>2010-06-18 01:17:16 +0000
committerSean Bruno <sbruno@FreeBSD.org>2010-06-18 01:17:16 +0000
commit5f494640de1022c26f4be7e9f946f0e109e33760 (patch)
tree838112efc46abf064f467dc2d6b27e7c5a8abef9 /lib/libkvm
parentd3cf8f4b6839d70563aa1ed44b58ee5843f0b440 (diff)
downloadsrc-5f494640de1022c26f4be7e9f946f0e109e33760.tar.gz
src-5f494640de1022c26f4be7e9f946f0e109e33760.zip
Much closer approximation of the kernel's calculation of this value.
Reviewed by: alc Obtained from: Yahoo Inc.
Notes
Notes: svn path=/head/; revision=209276
Diffstat (limited to 'lib/libkvm')
-rw-r--r--lib/libkvm/kvm_proc.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/libkvm/kvm_proc.c b/lib/libkvm/kvm_proc.c
index f8f84830d0a8..07b172f53172 100644
--- a/lib/libkvm/kvm_proc.c
+++ b/lib/libkvm/kvm_proc.c
@@ -323,7 +323,12 @@ nopgrp:
(void)kvm_read(kd, (u_long)proc.p_vmspace,
(char *)&vmspace, sizeof(vmspace));
kp->ki_size = vmspace.vm_map.size;
- kp->ki_rssize = vmspace.vm_swrss; /* XXX */
+ /*
+ * Approximate the kernel's method of calculating
+ * this field.
+ */
+#define pmap_resident_count(pm) ((pm)->pm_stats.resident_count)
+ kp->ki_rssize = pmap_resident_count(&vmspace.vm_pmap);
kp->ki_swrss = vmspace.vm_swrss;
kp->ki_tsize = vmspace.vm_tsize;
kp->ki_dsize = vmspace.vm_dsize;