Commit f747d82e authored by Ken Brown's avatar Ken Brown

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.
parent d2c28fab
2013-08-18 Ken Brown <kbrown@cornell.edu>
* 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 <eliz@gnu.org>
* decompress.c (Fzlib_available_p) [WINDOWSNT]: Update the value
......
......@@ -26,10 +26,18 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#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 @@ int debug_sheap = 0;
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 @@ bss_sbrk (ptrdiff_t request_size)
{
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 @@ bss_sbrk (ptrdiff_t request_size)
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 @@ void
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);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment