1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-28 00:21:52 +03:00

Define PTHREAD_STACK_MIN to sysconf(_SC_THREAD_STACK_MIN)

The constant PTHREAD_STACK_MIN may be too small for some processors.
Rename _SC_SIGSTKSZ_SOURCE to _DYNAMIC_STACK_SIZE_SOURCE.  When
_DYNAMIC_STACK_SIZE_SOURCE or _GNU_SOURCE are defined, define
PTHREAD_STACK_MIN to sysconf(_SC_THREAD_STACK_MIN) which is changed
to MIN (PTHREAD_STACK_MIN, sysconf(_SC_MINSIGSTKSZ)).

Consolidate <bits/local_lim.h> with <bits/pthread_stack_min.h> to
provide a constant target specific PTHREAD_STACK_MIN value.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
This commit is contained in:
H.J. Lu
2021-06-21 12:42:56 -07:00
parent 7c241325d6
commit 5d98a7dae9
26 changed files with 266 additions and 626 deletions

View File

@ -38,11 +38,6 @@
const size_t kNumThreads = 1024;
const size_t kNumHandlers = 1024;
const size_t kStacksize =
#ifdef PTHREAD_STACK_MIN
0x20000 < PTHREAD_STACK_MIN ? PTHREAD_STACK_MIN :
#endif
0x20000;
static void *
threadfunc (void *unused)
@ -66,6 +61,12 @@ do_test (void)
/* With default 8MiB Linux stack size, creating 1024 threads can cause
VM exhausiton on 32-bit machines. Reduce stack size of each thread to
128KiB for a maximum required VM size of 128MiB. */
size_t kStacksize =
#ifdef PTHREAD_STACK_MIN
0x20000 < PTHREAD_STACK_MIN ? PTHREAD_STACK_MIN :
#endif
0x20000;
xpthread_attr_setstacksize (&attr, kStacksize);
for (i = 0; i < kNumThreads; ++i) {