Fix nptl/tst-cond1{6,7,8}.c on 32-bit with many cpus.
* 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.
This commit is contained in:
parent
6143dc8d00
commit
7ac88e3831
|
@ -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>
|
2012-03-19 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
* sysdeps/x86_64/pthreaddef.h (CURRENT_STACK_FRAME): Use
|
* sysdeps/x86_64/pthreaddef.h (CURRENT_STACK_FRAME): Use
|
||||||
|
|
|
@ -76,9 +76,15 @@ do_test (void)
|
||||||
count *= 4;
|
count *= 4;
|
||||||
|
|
||||||
pthread_t th[count];
|
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)
|
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;
|
errno = ret;
|
||||||
printf ("pthread_create %d failed: %m\n", i);
|
printf ("pthread_create %d failed: %m\n", i);
|
||||||
|
|
|
@ -87,10 +87,16 @@ do_test (void)
|
||||||
count *= 8;
|
count *= 8;
|
||||||
|
|
||||||
pthread_t th[count + 1];
|
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)
|
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;
|
errno = ret;
|
||||||
printf ("pthread_create %d failed: %m\n", i);
|
printf ("pthread_create %d failed: %m\n", i);
|
||||||
|
|
Loading…
Reference in New Issue