summaryrefslogtreecommitdiffstats
path: root/lib/libkvm
diff options
context:
space:
mode:
authorsbruno <sbruno@FreeBSD.org>2010-06-18 01:17:16 +0000
committersbruno <sbruno@FreeBSD.org>2010-06-18 01:17:16 +0000
commit1014412bc5f4d8d357a0931a58081f2b22ae46a3 (patch)
tree838112efc46abf064f467dc2d6b27e7c5a8abef9 /lib/libkvm
parent09f088a4573916eae591a58023d3ad0da1eff81d (diff)
downloadFreeBSD-src-1014412bc5f4d8d357a0931a58081f2b22ae46a3.zip
FreeBSD-src-1014412bc5f4d8d357a0931a58081f2b22ae46a3.tar.gz
Much closer approximation of the kernel's calculation of this value.
Reviewed by: alc Obtained from: Yahoo Inc.
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 f8f8483..07b172f 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;
OpenPOWER on IntegriCloud