Date: Mon, 29 Nov 2004 17:11:42 +0900 From: Alexander Nedotsukov <bland@FreeBSD.org> To: Craig Rodrigues <rodrigc@crodrigues.org> Cc: freebsd-threads@FreeBSD.org Subject: Re: Question about our default pthread stack size Message-ID: <41AAD9BE.102@FreeBSD.org> In-Reply-To: <20041126185658.GA4213@crodrigues.org> References: <Pine.GSO.4.43.0411220058300.29589-100000@sea.ntplx.net> <41A1A3A5.20601@FreeBSD.org> <20041126185658.GA4213@crodrigues.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Craig Rodrigues wrote: >On Mon, Nov 22, 2004 at 05:30:29PM +0900, Alexander Nedotsukov wrote: > > >>- main stream follows the stack usage rules I described above and chosen >>1MB/2MB for their default stacks size. >>- we have limit which most likely triggers SIGSEGV. >> >> > > >Alexander, what was the original application which you >were working with where you encountered this thread stack problem? > > This time it was libburn which did on stack reservation for its data structures which just exeeds 64K. Another sample could be gstreamer which is much more stack hungry. >It would be good if multithreaded code that was written >on Linux or Solaris worked as much as possible "out of the box", >especially large applications like GNOME. Like it or not, >these are dominant platforms, and we might have to adjust >a bit to accomodate their quirks of large default thread stack size >(a developer can always decrease the stack size with >pthread_attr_setstacksize() if his application requires a smaller stack). > >What is the patch that would be required to increase the >default stacksize in libpthread, so that mainstream >applicatons like GNOME, or the application you were working >with, would "just work"? > >Is it something like: > > Yep. It is. If this going to be commited please bump __FreeBSD_version so we'll be able to conditionaly remove current hacks. Thanks, Alexander. > >--- /tmp/thr_private.h.orig Fri Nov 26 13:50:16 2004 >+++ /tmp/thr_private.h Fri Nov 26 13:50:55 2004 >@@ -450,14 +450,14 @@ > /* > * Miscellaneous definitions. > */ >-#define THR_STACK_DEFAULT 65536 >+#define THR_STACK_DEFAULT 0x100000 > > /* > * Maximum size of initial thread's stack. This perhaps deserves to be larger > * than the stacks of other threads, since many applications are likely to run > * almost entirely on this stack. > */ >-#define THR_STACK_INITIAL 0x100000 >+#define THR_STACK_INITIAL 0x200000 > > /* > * Define the different priority ranges. All applications have thread > > > >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?41AAD9BE.102>