stdlib: Fixing test-*atexit*-race tests on ia64

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
Related show

Commit Message

Adhemerval Zanella Feb. 1, 2018, 12:41 p.m.
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(-)

-- 
2.7.4

Comments

Dmitry V. Levin Feb. 1, 2018, 1:04 p.m. | #1
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
Adhemerval Zanella Feb. 1, 2018, 1:14 p.m. | #2
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.

Patch

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);