(In reply to comment #7) > I can provide some information about Chrome built with -fprofile-generate: > > p __static_tls_size > $1 = 114880 > > Now let's look at how Chrome allocates thread stacks: > > http://code.google.com/p/chromium/source/search?q=kShutdownDetectorThreadStackSize&origq=kShutdownDetectorThreadStackSize&btnG=Search+Trunk > > http://code.google.com/p/chromium/source/search?q=kWorkerThreadStackSize&origq=kWorkerThreadStackSize&btnG=Search+Trunk > > are two examples. There are other stack sizes too. From what I have seen, if > the stack size is less than __static_tls_size, it just fails to allocate the > stack. If it is something like 128k, it gets allocated, but soon runs out of > stack into the guard page where it causes a segfault on a random function (as > it allocating locals for the function).
That's brutal. You have a 128k stack with 114k of thread local data, a guard page, the thread descriptor, and you've barely got anything left.
Thank you for some real-world data, that helps put things into perspective.
(In reply to comment #7) code.google. com/p/chromium/ source/ search? q=kShutdownDete ctorThreadStack Size&origq= kShutdownDetect orThreadStackSi ze&btnG= Search+ Trunk code.google. com/p/chromium/ source/ search? q=kWorkerThread StackSize& origq=kWorkerTh readStackSize& btnG=Search+ Trunk
> I can provide some information about Chrome built with -fprofile-generate:
>
> p __static_tls_size
> $1 = 114880
>
> Now let's look at how Chrome allocates thread stacks:
>
> http://
>
> http://
>
> are two examples. There are other stack sizes too. From what I have seen, if
> the stack size is less than __static_tls_size, it just fails to allocate the
> stack. If it is something like 128k, it gets allocated, but soon runs out of
> stack into the guard page where it causes a segfault on a random function (as
> it allocating locals for the function).
That's brutal. You have a 128k stack with 114k of thread local data, a guard page, the thread descriptor, and you've barely got anything left.
Thank you for some real-world data, that helps put things into perspective.