about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2009-04-18 05:14:52 +0000
committerUlrich Drepper <drepper@redhat.com>2009-04-18 05:14:52 +0000
commitda2d2fb68dae7ed9f498fc67c85690d890b753fd (patch)
tree9002851cbf40bb3cbcdd92b4dc67b40f29227dee
parent11cad88ce95ca6e40713dffe8bcacc1baec77b6d (diff)
downloadglibc-da2d2fb68dae7ed9f498fc67c85690d890b753fd.tar.gz
glibc-da2d2fb68dae7ed9f498fc67c85690d890b753fd.tar.xz
glibc-da2d2fb68dae7ed9f498fc67c85690d890b753fd.zip
* malloc/malloc.c (malloc_info): Also output system memory information.
-rw-r--r--ChangeLog2
-rw-r--r--malloc/malloc.c19
2 files changed, 19 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 503d4b6de8..1c3ddbdc32 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2009-04-17  Ulrich Drepper  <drepper@redhat.com>
 
+	* malloc/malloc.c (malloc_info): Also output system memory information.
+
 	* sysdeps/unix/sysv/linux/kernel-features.h: All supported
 	architectures have preadv/pwritev in 2.6.30.
 
diff --git a/malloc/malloc.c b/malloc/malloc.c
index 3bd19b0ca9..c9141f7fb8 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -23,6 +23,10 @@
   This is a version (aka ptmalloc2) of malloc/free/realloc written by
   Doug Lea and adapted to multiple threads/arenas by Wolfram Gloger.
 
+  There have been substantial changesmade after the integration into
+  glibc in all parts of the code.  Do not look for much commonality
+  with the ptmalloc2 version.
+
 * Version ptmalloc2-20011215
   based on:
   VERSION 2.7.0 Sun Mar 11 14:14:06 2001  Doug Lea  (dl at gee)
@@ -6245,6 +6249,8 @@ malloc_info (int options, FILE *fp)
   size_t total_nfastblocks = 0;
   size_t total_avail = 0;
   size_t total_fastavail = 0;
+  size_t total_system = 0;
+  size_t total_max_system = 0;
 
   void mi_arena (mstate ar_ptr)
   {
@@ -6350,11 +6356,17 @@ malloc_info (int options, FILE *fp)
 	       sizes[NFASTBINS].from, sizes[NFASTBINS].to,
 	       sizes[NFASTBINS].total, sizes[NFASTBINS].count);
 
+    total_system += ar_ptr->system_mem;
+    total_max_system += ar_ptr->max_system_mem;
+
     fprintf (fp,
 	     "</sizes>\n<total type=\"fast\" count=\"%zu\" size=\"%zu\"/>\n"
 	     "<total type=\"rest\" count=\"%zu\" size=\"%zu\"/>\n"
+	     "<system type=\"current\" size=\"%zu\"/>\n"
+	     "<system type=\"max\" size=\"%zu\"/>\n"
 	     "</heap>\n",
-	     nfastblocks, fastavail, nblocks, avail);
+	     nfastblocks, fastavail, nblocks, avail,
+	     ar_ptr->system_mem, ar_ptr->max_system_mem);
   }
 
   fputs ("<malloc version=\"1\">\n", fp);
@@ -6371,8 +6383,11 @@ malloc_info (int options, FILE *fp)
   fprintf (fp,
 	   "<total type=\"fast\" count=\"%zu\" size=\"%zu\"/>\n"
 	   "<total type=\"rest\" count=\"%zu\" size=\"%zu\"/>\n"
+	   "<system type=\"current\" size=\"%zu\n/>\n"
+	   "<system type=\"max\" size=\"%zu\n/>\n"
 	   "</malloc>\n",
-	   total_nfastblocks, total_fastavail, total_nblocks, total_avail);
+	   total_nfastblocks, total_fastavail, total_nblocks, total_avail,
+	   total_system, total_max_system);
 
   return 0;
 }