Thread stack size issue related to glibc TLS bug
Martin Buchholz
martinrb at google.com
Sat May 25 19:27:55 UTC 2019
Very big picture - if we want to banish stack overflows forever, we would
need to migrate the industry to split runtime stacks, which would add a bit
of runtime overhead to every native function call. No one is heroic enough
to make progress towards that. Maybe developers of new OSes need to read
this thread?
---
Today, linux kernels run with a variety of libc implementations, so
attempts to use a private glibc symbol might end up looking just like
trying to use a public one, using dlsym at runtime.
---
It seems reasonable to switch from _dl_get_tls_static_info
to __pthread_get_minstack.
One strong hint is that glibc uses that when it needs to create its own
helper thread with minimal stack.
But why-oh-why not expose that for use by others? Other software like Java
or Rust has the same needs!
/* The helper thread needs only very little resources. */
(void) pthread_attr_setstacksize (&attr,
__pthread_get_minstack (&attr)
+ 4 * PTHREAD_STACK_MIN);
More information about the hotspot-runtime-dev
mailing list