Message ID | 1517488865-1052-1-git-send-email-adhemerval.zanella@linaro.org |
---|---|
State | New |
Headers | show |
Series | stdlib: Fixing test-*atexit*-race tests on ia64 | expand |
On Thu, Feb 01, 2018 at 10:41:05AM -0200, Adhemerval Zanella wrote: > The tests requires a new thread stack size to a value (0x20000) lower than > architecture minimum (0x3000). Set PTHREAD_STACK_MIN in this case. These tests require a new thread stack size set to a value (0x20000) lower than the architecture minimum (0x30000). Set the stack size to PTHREAD_STACK_MIN in this case. > Checked on ia64-linux-gnu. > > * stdlib/test-atexit-race-common.c (do_test): Check stack size > against PTHREAD_STACK_MIN. > --- > ChangeLog | 5 +++++ > stdlib/test-atexit-race-common.c | 5 ++++- > 2 files changed, 9 insertions(+), 1 deletion(-) > > diff --git a/stdlib/test-atexit-race-common.c b/stdlib/test-atexit-race-common.c > index 4d7f911..02d459c 100644 > --- a/stdlib/test-atexit-race-common.c > +++ b/stdlib/test-atexit-race-common.c > @@ -34,9 +34,11 @@ > #include <stdio.h> > #include <stdlib.h> > #include <support/xthread.h> > +#include <sys/param.h> #include <limits.h> > const size_t kNumThreads = 1024; > const size_t kNumHandlers = 1024; > +const size_t kStacksize = 0x20000; const size_t kStacksize = 0x20000 < PTHREAD_STACK_MIN ? PTHREAD_STACK_MIN : 0x20000; > static void * > threadfunc (void *unused) > @@ -60,7 +62,8 @@ 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. */ > - xpthread_attr_setstacksize (&attr, 128 * 1024); > + size_t ss = kStacksize < PTHREAD_STACK_MIN ? PTHREAD_STACK_MIN : kStacksize; > + xpthread_attr_setstacksize (&attr, ss); > > for (i = 0; i < kNumThreads; ++i) { > xpthread_create (&attr, threadfunc, NULL); ... and this hunk won't be needed at all. -- ldv
On 01/02/2018 11:04, Dmitry V. Levin wrote: > On Thu, Feb 01, 2018 at 10:41:05AM -0200, Adhemerval Zanella wrote: >> The tests requires a new thread stack size to a value (0x20000) lower than >> architecture minimum (0x3000). Set PTHREAD_STACK_MIN in this case. > > These tests require a new thread stack size set to a value (0x20000) > lower than the architecture minimum (0x30000). Set the stack size > to PTHREAD_STACK_MIN in this case. > >> Checked on ia64-linux-gnu. >> >> * stdlib/test-atexit-race-common.c (do_test): Check stack size >> against PTHREAD_STACK_MIN. >> --- >> ChangeLog | 5 +++++ >> stdlib/test-atexit-race-common.c | 5 ++++- >> 2 files changed, 9 insertions(+), 1 deletion(-) >> >> diff --git a/stdlib/test-atexit-race-common.c b/stdlib/test-atexit-race-common.c >> index 4d7f911..02d459c 100644 >> --- a/stdlib/test-atexit-race-common.c >> +++ b/stdlib/test-atexit-race-common.c >> @@ -34,9 +34,11 @@ >> #include <stdio.h> >> #include <stdlib.h> >> #include <support/xthread.h> >> +#include <sys/param.h> > > #include <limits.h> > >> const size_t kNumThreads = 1024; >> const size_t kNumHandlers = 1024; >> +const size_t kStacksize = 0x20000; > > const size_t kStacksize = > 0x20000 < PTHREAD_STACK_MIN ? PTHREAD_STACK_MIN : 0x20000; Alright, I just set the logic to be near the comment, I do not have a strong preference here. > >> static void * >> threadfunc (void *unused) >> @@ -60,7 +62,8 @@ 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. */ >> - xpthread_attr_setstacksize (&attr, 128 * 1024); >> + size_t ss = kStacksize < PTHREAD_STACK_MIN ? PTHREAD_STACK_MIN : kStacksize; >> + xpthread_attr_setstacksize (&attr, ss); >> >> for (i = 0; i < kNumThreads; ++i) { >> xpthread_create (&attr, threadfunc, NULL); > > ... and this hunk won't be needed at all. > > I will commit with your suggestions.
diff --git a/stdlib/test-atexit-race-common.c b/stdlib/test-atexit-race-common.c index 4d7f911..02d459c 100644 --- a/stdlib/test-atexit-race-common.c +++ b/stdlib/test-atexit-race-common.c @@ -34,9 +34,11 @@ #include <stdio.h> #include <stdlib.h> #include <support/xthread.h> +#include <sys/param.h> const size_t kNumThreads = 1024; const size_t kNumHandlers = 1024; +const size_t kStacksize = 0x20000; static void * threadfunc (void *unused) @@ -60,7 +62,8 @@ 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. */ - xpthread_attr_setstacksize (&attr, 128 * 1024); + size_t ss = kStacksize < PTHREAD_STACK_MIN ? PTHREAD_STACK_MIN : kStacksize; + xpthread_attr_setstacksize (&attr, ss); for (i = 0; i < kNumThreads; ++i) { xpthread_create (&attr, threadfunc, NULL);