summaryrefslogtreecommitdiff
path: root/libpagemap
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2013-05-22 16:33:03 -0700
committerColin Cross <ccross@android.com>2013-06-24 14:55:22 -0700
commitdccd379d2dc4f903b9f9dfd00e2f60747a7bb289 (patch)
treebd594123364a65cce8c7324c91fc41eeda1d6ae2 /libpagemap
parent5d461218f8c38dadf831ccc52ac6e5153687cf17 (diff)
downloadextras-dccd379d2dc4f903b9f9dfd00e2f60747a7bb289.tar.gz
libpagemap: fix vss calculation
pm_map_usage was not incrementing vss for pages that were in the process's map but not occupying a physical page. Move the vss increment above the check for present mappings. Change-Id: I2706e6fbcbfe7d70f10950333a486d690bc84d6c
Diffstat (limited to 'libpagemap')
-rw-r--r--libpagemap/pm_map.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libpagemap/pm_map.c b/libpagemap/pm_map.c
index 2d5c2f90..ef9e2ce6 100644
--- a/libpagemap/pm_map.c
+++ b/libpagemap/pm_map.c
@@ -43,6 +43,8 @@ int pm_map_usage(pm_map_t *map, pm_memusage_t *usage_out) {
pm_memusage_zero(&usage);
for (i = 0; i < len; i++) {
+ usage.vss += map->proc->ker->pagesize;
+
if (!PM_PAGEMAP_PRESENT(pagemap[i]) ||
PM_PAGEMAP_SWAPPED(pagemap[i]))
continue;
@@ -51,7 +53,6 @@ int pm_map_usage(pm_map_t *map, pm_memusage_t *usage_out) {
&count);
if (error) goto out;
- usage.vss += map->proc->ker->pagesize;
usage.rss += (count >= 1) ? (map->proc->ker->pagesize) : (0);
usage.pss += (count >= 1) ? (map->proc->ker->pagesize / count) : (0);
usage.uss += (count == 1) ? (map->proc->ker->pagesize) : (0);