diff options
author | Erik M. Bray <erik.bray@lri.fr> | 2016-11-16 15:36:41 +0100 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2016-11-16 15:58:08 +0100 |
commit | 6477a48cd170b749d6eedad85944f77995edc0fb (patch) | |
tree | ef3008d7a0d302eefbbd9af624f3f181131ff45d /winsup/cygwin/fhandler_process.cc | |
parent | 9ba4744620f277188955f90055237d9e89b8e6f9 (diff) | |
download | cygnal-6477a48cd170b749d6eedad85944f77995edc0fb.tar.gz cygnal-6477a48cd170b749d6eedad85944f77995edc0fb.tar.bz2 cygnal-6477a48cd170b749d6eedad85944f77995edc0fb.zip |
statm should report memory as multiples of allocation_granularity instead of page_size
that ensures that values in statm mupltiplied by POSIX _SC_PAGESIZE give the correct values
Diffstat (limited to 'winsup/cygwin/fhandler_process.cc')
-rw-r--r-- | winsup/cygwin/fhandler_process.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/winsup/cygwin/fhandler_process.cc b/winsup/cygwin/fhandler_process.cc index 02f7ca042..c5698c3eb 100644 --- a/winsup/cygwin/fhandler_process.cc +++ b/winsup/cygwin/fhandler_process.cc @@ -1251,12 +1251,16 @@ format_process_statm (void *data, char *&destbuf) _pinfo *p = (_pinfo *) data; unsigned long vmsize = 0UL, vmrss = 0UL, vmtext = 0UL, vmdata = 0UL, vmlib = 0UL, vmshare = 0UL; + size_t page_scale; if (!get_mem_values (p->dwProcessId, &vmsize, &vmrss, &vmtext, &vmdata, &vmlib, &vmshare)) return 0; + + page_scale = wincap.allocation_granularity() / wincap.page_size(); destbuf = (char *) crealloc_abort (destbuf, 96); return __small_sprintf (destbuf, "%ld %ld %ld %ld %ld %ld 0\n", - vmsize, vmrss, vmshare, vmtext, vmlib, vmdata); + vmsize / page_scale, vmrss / page_scale, vmshare / page_scale, + vmtext / page_scale, vmlib / page_scale, vmdata / page_scale); } extern "C" { |