stdlib: Fixing test-*atexit*-race tests on ia64
Commit Message
The tests requires a new thread stack size to a value (0x20000) lower than
architecture minimum (0x3000). Set 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(-)
Comments
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.
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.
@@ -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);