]> sourceware.org Git - newlib-cygwin.git/commitdiff
statm should report memory as multiples of allocation_granularity instead of page_size
authorErik M. Bray <erik.bray@lri.fr>
Wed, 16 Nov 2016 14:36:41 +0000 (15:36 +0100)
committerCorinna Vinschen <corinna@vinschen.de>
Wed, 16 Nov 2016 14:58:08 +0000 (15:58 +0100)
that ensures that values in statm mupltiplied by POSIX _SC_PAGESIZE give the correct values

winsup/cygwin/fhandler_process.cc

index 02f7ca04242998327d88e162ff60dd3dab5ea994..c5698c3ebc89571e93b58ce321cc92ba27dc82e5 100644 (file)
@@ -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" {
This page took 0.033382 seconds and 5 git commands to generate.