Question about our default pthread stack size
Joe Marcus Clarke
marcus at FreeBSD.org
Fri Nov 19 22:01:11 GMT 2004
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Daniel Eischen wrote:
| On Fri, 19 Nov 2004, Joe Marcus Clarke wrote:
|
|
|>Daniel Eischen wrote:
|>| The thing I worry about is these piggy applications being the
|>| driving force behind our stack size. If they really are designed
|>| to need a huge stack size, they should be the ones that change
|>| to support it, not the other way around. Do they know their own
|>| stack space requirements or do they just ignore it because it
|>| isn't a problem so far (on Linux)?
|>
|>The bottom line is that they don't know their stack requirements, but
|>the OS is accommodating, so they never have to really find out until we
|>submit a bug to them. However, some applications (e.g. gstreamer,
|>libgnomecups, etc.) cannot be fixed without massive architectural
|>changes. Just to be clear, these applications _are_ overrunning the
|>default stack.
|
|
| FYI, I don't suggest they change their stack usage, just that
| they create threads with thread attributes specifying a larger
| stack size. If they recognize they have large stack space
| requirements, it should be easily solved without an architectural
| overhaul.
The problem is they don't realize they have such requirements until the
FreeBSD camp complains about weird crashes.
The architectural change to which I referred deals with GThreadPools.
There is no way to set a per-thread stack size with GThreadPools.
Therefore, I had to patch the source (glib20) such that all threads are
allocated with a default stack size of 1 MB unless a function is called
that explicitly sets a different size.
~ I assume your patches do exactly this; are the GNOME
| developers reluctant to incorporate your patches?
Yes. I have brought these patches up to them, but they prefer not to
touch this code since FreeBSD seems to be the only platform affected.
|
| I'm not going to argue very strongly against changing the
| default stack size. I just think the onus should be on
| the larger applications to recognize that they need larger
| stacks and to explicitly set it. There may also be other
| applications that create a lot of threads which may need
| to lower the stack size if the default were changed.
That may be true, but I don't know of any such applications. This is
something we can do in HEAD, and let it sit for a while to see if there
are any hidden problems. If there are, we can always revert this
change. However, I would imagine that those applications would have
already had problems on Solaris or Linux if that were the case.
Joe
|
- --
Joe Marcus Clarke
FreeBSD GNOME Team :: gnome at FreeBSD.org
FreeNode / #freebsd-gnome
http://www.FreeBSD.org/gnome
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (Darwin)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFBnm0sb2iPiv4Uz4cRAk3gAKCMFLftovlRk3f/f4XDdONlRJTg9QCglEGP
PhH7tz1ZPXT8rRKbOdgKC00=
=Inkz
-----END PGP SIGNATURE-----
More information about the freebsd-threads
mailing list