On 11 March 2014 at 20:38, David Chisnall <thera...@freebsd.org> wrote:
> On 12 Mar 2014, at 02:07, Roger Pau Monné <roger....@citrix.com> wrote:
>> I've found out that the value PTHREAD_STACK_MIN is currently set (2048
>> bytes) seems to be way too low
> This looks like an error in your code.  The spec says:
>> Minimum size in bytes of thread stack storage.
>> Minimum Acceptable Value: 0
> It is meant to be the minimum value that the system can give for a thread 
> stack.  The purpose of this constant is for languages that do their own stack 
> management bit some chain of activation records of segmented stacks, but want 
> to use pthreads for threading, so that they can allocate the smallest 
> possible stack that allows pthread cleanup to work.
> Using it from C code is very likely to be a mistake.

I found that lang/polyml uses PTHREAD_STACK_MIN for a trivial signal
handler thread it creates[1]. They found it was too small and
implemented a 4K minimum bound to fix polyml on FreeBSD[2]. Even if
this isn't really the intended use of PTHREAD_STACK_MIN it suggests
the 2K x86 minimum may indeed be too low.

I ran into this while trying LLVM's libunwind, which requires more
stack space. 2K is certainly too low with LLVM libunwind. Is it
reasonable to just increase it to say 8K?

freebsd-current@freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to