From 1616b47f837e7b92a1b05b02a31849a65e86e6a0 Mon Sep 17 00:00:00 2001 From: nbd Date: Mon, 18 Nov 2013 13:32:06 +0000 Subject: [PATCH 1/1] 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 git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38851 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- toolchain/uClibc/patches-0.9.33.2/990-no-stack-cache.patch | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 toolchain/uClibc/patches-0.9.33.2/990-no-stack-cache.patch diff --git a/toolchain/uClibc/patches-0.9.33.2/990-no-stack-cache.patch b/toolchain/uClibc/patches-0.9.33.2/990-no-stack-cache.patch new file mode 100644 index 0000000000..8f0b511ea6 --- /dev/null +++ b/toolchain/uClibc/patches-0.9.33.2/990-no-stack-cache.patch @@ -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. */ -- 2.11.0