emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r113939: Change size of static heap on Cygwin; repor


From: Ken Brown
Subject: [Emacs-diffs] trunk r113939: Change size of static heap on Cygwin; report maximum usage after dumping.
Date: Sun, 18 Aug 2013 17:37:43 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 113939
revision-id: address@hidden
parent: address@hidden
committer: Ken Brown <address@hidden>
branch nick: trunk
timestamp: Sun 2013-08-18 13:37:31 -0400
message:
  Change size of static heap on Cygwin; report maximum usage after dumping.
  
  * src/sheap.c (STATIC_HEAP_SIZE): Adjust to current needs; use bigger
  static heap if ENABLE_CHECKING is defined.
  (max_bss_sbrk_ptr): New variable.
  (bss_sbrk): Use it.
  (report_sheap_usage): Report maximum static heap usage instead of
  ending static heap usage.
modified:
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/sheap.c                    sheap.c-20091113204419-o5vbwnq5f7feedwu-3009
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2013-08-17 17:18:07 +0000
+++ b/src/ChangeLog     2013-08-18 17:37:31 +0000
@@ -1,3 +1,12 @@
+2013-08-18  Ken Brown  <address@hidden>
+
+       * sheap.c (STATIC_HEAP_SIZE): Adjust to current needs; use bigger
+       static heap if ENABLE_CHECKING is defined.
+       (max_bss_sbrk_ptr): New variable.
+       (bss_sbrk): Use it.
+       (report_sheap_usage): Report maximum static heap usage instead of
+       ending static heap usage.
+
 2013-08-17  Eli Zaretskii  <address@hidden>
 
        * decompress.c (Fzlib_available_p) [WINDOWSNT]: Update the value

=== modified file 'src/sheap.c'
--- a/src/sheap.c       2013-07-09 13:56:47 +0000
+++ b/src/sheap.c       2013-08-18 17:37:31 +0000
@@ -26,10 +26,18 @@
 #include <unistd.h>
 
 #ifdef __x86_64__
+#ifdef ENABLE_CHECKING
+#define STATIC_HEAP_SIZE       (28 * 1024 * 1024)
+#else
+#define STATIC_HEAP_SIZE       (19 * 1024 * 1024)
+#endif
+#else  /* x86 */
+#ifdef ENABLE_CHECKING
 #define STATIC_HEAP_SIZE       (18 * 1024 * 1024)
 #else
 #define STATIC_HEAP_SIZE       (13 * 1024 * 1024)
 #endif
+#endif /* x86 */
 
 int debug_sheap = 0;
 
@@ -37,6 +45,7 @@
 
 char bss_sbrk_buffer[STATIC_HEAP_SIZE];
 char *bss_sbrk_ptr;
+char *max_bss_sbrk_ptr;
 int bss_sbrk_did_unexec;
 
 void *
@@ -44,7 +53,7 @@
 {
   if (!bss_sbrk_ptr)
     {
-      bss_sbrk_ptr = bss_sbrk_buffer;
+      max_bss_sbrk_ptr = bss_sbrk_ptr = bss_sbrk_buffer;
 #ifdef CYGWIN
       sbrk (BLOCKSIZE);                /* force space for fork to work */
 #endif
@@ -85,6 +94,8 @@
       if (debug_sheap)
        printf ("allocated 0x%08x size %d\n", ret, request_size);
       bss_sbrk_ptr += (int) request_size;
+      if (bss_sbrk_ptr > max_bss_sbrk_ptr)
+       max_bss_sbrk_ptr = bss_sbrk_ptr;
       return ret;
     }
 }
@@ -93,8 +104,8 @@
 report_sheap_usage (int die_if_pure_storage_exceeded)
 {
   char buf[200];
-  sprintf (buf, "Static heap usage: %d of %d bytes",
-          bss_sbrk_ptr - bss_sbrk_buffer, STATIC_HEAP_SIZE);
+  sprintf (buf, "Maximum static heap usage: %d of %d bytes",
+          max_bss_sbrk_ptr - bss_sbrk_buffer, STATIC_HEAP_SIZE);
   /* Don't log messages, cause at this point, we're not allowed to create
      buffers.  */
   message1_nolog (buf);


reply via email to

[Prev in Thread] Current Thread [Next in Thread]