This is the mail archive of the
mailing list for the glibc project.
[Bug libc/11787] Program with large TLS segment fails aio_write
- From: "ppluzhnikov at google dot com" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sources dot redhat dot com
- Date: Fri, 23 Mar 2012 21:32:30 +0000
- Subject: [Bug libc/11787] Program with large TLS segment fails aio_write
- Auto-submitted: auto-generated
- References: <email@example.com/bugzilla/>
--- Comment #6 from Paul Pluzhnikov <ppluzhnikov at google dot com> 2012-03-23 21:32:30 UTC ---
(In reply to comment #5)
I don't believe you've understood the problem.
Default stack sizes are fine.
But aio_write creates a small (16K) stack, and chrome creates 128K stacks.
Normally this is also just fine; and all works.
But then application creates a larger-than-usual TLS (either by allocating
4096 thread-local ints as in the test case here, or by instrumenting for
profiling), and suddenly things start crashing in hard-to-diagnose fashion.
> We do not want to penalize all of the other programs that don't need the extra
> stack space.
You aren't penalizing them much if they aren't using TLS, and if they are
using large TLS, then you are making them work instead of crashing.
>From "man pthread_attr_setstacksize":
The pthread_attr_setstacksize() function sets the stack size attribute of
the thread attributes object referred to by attr to the value specified
It doesn't say "to the value specified in stacksize minus the size of TLS".
The fact that GLIBC chops off space for TLS from the top of stack is an
implementation detail, and (IMHO) should *not* reduce the stack size
application actually gets!
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.