increase default thread stack size to 80k
authorRich Felker <dalias@aerifal.cx>
Sun, 3 Jun 2012 00:15:37 +0000 (20:15 -0400)
committerRich Felker <dalias@aerifal.cx>
Sun, 3 Jun 2012 00:15:37 +0000 (20:15 -0400)
I've been looking for data that would suggest a good default, and
since little has shown up, i'm doing this based on the limited data I
have. the value 80k is chosen to accommodate 64k of application data
(which happens to be the size of the buffer in git that made it crash
without a patch to call pthread_attr_setstacksize) plus the max stack
usage of most libc functions (with a few exceptions like crypt, which
will be fixed soon to avoid excessive stack usage, and [n]ftw, which
inherently uses a fair bit in recursive directory searching).

if further evidence emerges suggesting that the default should be
larger, I'll consider changing it again, but I'd like to avoid it
getting too large to avoid the issues of large commit charge and rapid
address space exhaustion on 32-bit machines.

src/internal/pthread_impl.h

index 01e6e5a..d67edf2 100644 (file)
@@ -110,7 +110,7 @@ void __wake(volatile int *, int, int);
 void __synccall_lock();
 void __synccall_unlock();
 
-#define DEFAULT_STACK_SIZE (16384-PAGE_SIZE)
+#define DEFAULT_STACK_SIZE 81920
 #define DEFAULT_GUARD_SIZE PAGE_SIZE
 
 #endif