about summary refs log tree commit diff
diff options
context:
space:
mode:
authorryanarn <ryanarn@igoo.rchland.ibm.com>2011-07-01 09:42:21 -0500
committerryanarn <ryanarn@igoo.rchland.ibm.com>2011-07-01 09:42:21 -0500
commit2c3d9ba9a332cecb009b97ebac5bb78a13118c7c (patch)
treea89f441e18a7fb84a81b348c164a1b09cda9ce01
parent8ff7fa1ab2f28cde64f5337dc4b6a984c41ced27 (diff)
downloadglibc-2c3d9ba9a332cecb009b97ebac5bb78a13118c7c.tar.gz
glibc-2c3d9ba9a332cecb009b97ebac5bb78a13118c7c.tar.xz
glibc-2c3d9ba9a332cecb009b97ebac5bb78a13118c7c.zip
Remove pthread_attr_setstacksize from __aio_create_helper_thread.
-rw-r--r--ChangeLog8
-rw-r--r--nptl/sysdeps/unix/sysv/linux/aio_misc.h4
2 files changed, 10 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 9ad4d2e1b3..5ec2eb3272 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2011-06-30  Ryan S. Arnold  <rsa@linux.vnet.ibm.com>
+
+	* nptl/sysdeps/unix/sysv/linux/aio_misc.h
+	(__aio_create_helper_thread): Remove call to
+	pthread_attr_setstacksize () which set the stacksize to
+	PTHREAD_STACK_MIN.  This is too small if large amounts of TLS are in
+	use.  Removing this call effectively sets stacksize to 'default'.
+
 2011-03-15  Alan Modra  <amodra@gmail.com>
 
 	* elf/dl-reloc.c (_dl_try_allocate_static_tls <TLS_DTV_AT_TP>): Handle
diff --git a/nptl/sysdeps/unix/sysv/linux/aio_misc.h b/nptl/sysdeps/unix/sysv/linux/aio_misc.h
index 406d96e865..2bf7c17aed 100644
--- a/nptl/sysdeps/unix/sysv/linux/aio_misc.h
+++ b/nptl/sysdeps/unix/sysv/linux/aio_misc.h
@@ -46,8 +46,8 @@ __aio_create_helper_thread (pthread_t *threadp, void *(*tf) (void *),
   pthread_attr_init (&attr);
   pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
 
-  /* The helper thread needs only very little resources.  */
-  (void) pthread_attr_setstacksize (&attr, PTHREAD_STACK_MIN);
+  /* Don't set the stacksize to PTHREAD_STACK_MIN.  Let it default, otherwise
+     the stack may be too small if TLS is in use.  */
 
   /* Block all signals in the helper thread.  To do this thoroughly we
      temporarily have to block all signals here.  */