Fix nptl/tst-cond1{6,7,8}.c on 32-bit with many cpus.
authorDavid S. Miller <davem@davemloft.net>
Tue, 27 Mar 2012 21:25:55 +0000 (14:25 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 27 Mar 2012 21:25:55 +0000 (14:25 -0700)
* tst-cond16.c (do_test): Use a thread stack size which is either
PTHREAD_STACK_MIN or the page size, whichever is larger.
* tst-cond18.c (do_test): Likewise.

nptl/ChangeLog
nptl/tst-cond16.c
nptl/tst-cond18.c

index ad345f9..4622393 100644 (file)
@@ -1,3 +1,9 @@
+2012-03-27  David S. Miller  <davem@davemloft.net>
+
+       * tst-cond16.c (do_test): Use a thread stack size which is either
+       PTHREAD_STACK_MIN or the page size, whichever is larger.
+       * tst-cond18.c (do_test): Likewise.
+
 2012-03-19  H.J. Lu  <hongjiu.lu@intel.com>
 
        * sysdeps/x86_64/pthreaddef.h (CURRENT_STACK_FRAME): Use
index 44b9863..8a35d95 100644 (file)
@@ -76,9 +76,15 @@ do_test (void)
   count *= 4;
 
   pthread_t th[count];
-  int i, ret;
+  pthread_attr_t attr;
+  int i, ret, sz;
+  pthread_attr_init (&attr);
+  sz = __getpagesize ();
+  if (sz < PTHREAD_STACK_MIN)
+         sz = PTHREAD_STACK_MIN;
+  pthread_attr_setstacksize (&attr, sz);
   for (i = 0; i < count; ++i)
-    if ((ret = pthread_create (&th[i], NULL, tf, NULL)) != 0)
+    if ((ret = pthread_create (&th[i], &attr, tf, NULL)) != 0)
       {
        errno = ret;
        printf ("pthread_create %d failed: %m\n", i);
index a1bb947..264c932 100644 (file)
@@ -87,10 +87,16 @@ do_test (void)
   count *= 8;
 
   pthread_t th[count + 1];
-  int i, ret;
+  pthread_attr_t attr;
+  int i, ret, sz;
+  pthread_attr_init (&attr);
+  sz = __getpagesize ();
+  if (sz < PTHREAD_STACK_MIN)
+         sz = PTHREAD_STACK_MIN;
+  pthread_attr_setstacksize (&attr, sz);
 
   for (i = 0; i <= count; ++i)
-    if ((ret = pthread_create (&th[i], NULL, tf, (void *) (long) i)) != 0)
+    if ((ret = pthread_create (&th[i], &attr, tf, (void *) (long) i)) != 0)
       {
        errno = ret;
        printf ("pthread_create %d failed: %m\n", i);