This is the mail archive of the
mailing list for the glibc project.
Re: [RFC] nptl: change default stack guard size of threads
- From: Florian Weimer <fweimer at redhat dot com>
- To: Wilco Dijkstra <Wilco dot Dijkstra at arm dot com>, Carlos O'Donell <carlos at redhat dot com>, Szabolcs Nagy <Szabolcs dot Nagy at arm dot com>, GNU C Library <libc-alpha at sourceware dot org>
- Cc: nd <nd at arm dot com>, Jeff Law <law at redhat dot com>, Richard Earnshaw <Richard dot Earnshaw at arm dot com>, Rich Felker <dalias at libc dot org>, James Greenhalgh <James dot Greenhalgh at arm dot com>
- Date: Wed, 6 Dec 2017 14:12:44 +0100
- Subject: Re: [RFC] nptl: change default stack guard size of threads
- Authentication-results: sourceware.org; auth=none
- References: <5A1ECB40.firstname.lastname@example.org> <email@example.com> <5A1EFF28.firstname.lastname@example.org> <email@example.com> <HE1PR0801MB205834BDB77C2208C953FD2E833B0@HE1PR0801MB2058.eurprd08.prod.outlook.com> <firstname.lastname@example.org> <email@example.com> <DB6PR0801MB2053CF95BF1877527163A4EB83320@DB6PR0801MB2053.eurprd08.prod.outlook.com>
On 12/06/2017 02:10 PM, Wilco Dijkstra wrote:
Florian Weimer wrote:
On 11/29/2017 11:38 PM, Carlos O'Donell wrote:
On 11/29/2017 02:28 PM, Wilco Dijkstra wrote:
Why should it be any different from LP64? Typical page size will still be
64KB, so a 4KB guard would be rounded up to 64KB. An ILP32 system
with 64KB pages could create ~30000 threads per process. Does that
make it unusable?
... and this is already configurable via pthread_attr_setguardsize(), so
you *could* tune a system to have smaller guards against the recommendation
of the runtime authors?
Sure, if you recompile your application. That's not really a solution IMHO.
You've got to do that already in order to run it on ILP32 - there isn't exactly
a large amount of existing ILP32 binaries around, let alone ones that need more
than 30000 threads per process.
I wasn't talking about aarch64 ILP32, and I suspect neither was Carlos.
In my world, if you still have 32-bit binaries, it's because you lost
the sources or the tools or knowledge to build them at some point.