uClibc: Deactivate oversized thread stack cache

A small system like the common home router doesn't have 40 MiB per process for
a dirty stack cache. This can easily lead to an overbooking OOM problem and
caused a lot of hangs+reboots on 32 MiB systems running nodogsplash.

Not using a stack cache can increase the time to spawn new threads. This is
hopefully no problem for system not running a lot of parallel computations.

Signed-off-by: Sven Eckelmann <sven@open-mesh.com>

SVN-Revision: 38851
This commit is contained in:
Felix Fietkau 2013-11-18 13:32:06 +00:00
parent d38c28b58c
commit edc8ac6246

View File

@ -0,0 +1,11 @@
--- a/libpthread/nptl/allocatestack.c
+++ b/libpthread/nptl/allocatestack.c
@@ -100,7 +100,7 @@
/* Cache handling for not-yet free stacks. */
/* Maximum size in kB of cache. */
-static size_t stack_cache_maxsize = 40 * 1024 * 1024; /* 40MiBi by default. */
+static size_t stack_cache_maxsize = 0; /* embedded systems don't have enough ram for dirty stack caches */
static size_t stack_cache_actsize;
/* Mutex protecting this variable. */