[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] xenstore: set READ_THREAD_STACKSIZE to a sane value



On Tue, 2014-03-11 at 17:18 +0100, Roger Pau Monnà wrote:
> On 11/03/14 17:03, Ian Campbell wrote:
> > On Tue, 2014-03-11 at 16:55 +0100, Roger Pau Monnà wrote:
> >>
> >> Thanks, I've been able to get the stack pointer at each frame, here are
> >> the results (from frame 0 to frame 10):
> >>
> >> 0x7fffffbfcff0
> > 
> > <-PAGE BOUNDARY HERE
> > 
> > Hence the segfault I expct...
> > 
> >> 0x7fffffbfd0a0
> >> 0x7fffffbfd0e0
> >> 0x7fffffbfd120
> >> 0x7fffffbfd160
> >> 0x7fffffbfd1a0
> >> 0x7fffffbfd1e0
> >> 0x7fffffbfd6a0
> >> 0x7fffffbfd7a0
> >> 0x7fffffbfd7c0
> >> 0x7fffffbfd800
> >>
> >> Doing:
> >>
> >> 0x7fffffbfd800 - 0x7fffffbfcff0 = 0x810
> >>
> >> Which is 2064 in decimal. The biggest culprit seems to be malloc, which
> >> is using 1216 bytes of the stack.
> > 
> > Wow!
> > 
> > http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libc/stdlib/malloc.c?rev=1.54.10.1&content-type=text/x-cvsweb-markup
> >  I suppose? malloc itself looks fairly small, but there's a lot of inlining 
> > in that function... I don't see any large on stack allocations (e.g. 
> > arrays) but I suppose it all adds up.
> 
> This is FreeBSD, which AFAIK is using jemalloc [0], the source inside of
> the FreeBSD tree seems to be:
> 
> http://svnweb.freebsd.org/base/head/contrib/jemalloc/src/

Right, I think.

> And it looks like there's quite a lot of inlining there also...
> 
> Another question to ask would be why FreeBSD sets PTHREAD_STACK_MIN to
> 2048 when even a simple malloc call is going to blow that up,

It does seem rather aggressive, but I suppose it is "min" not
"sensible_min".

>  but I
> guess you can run a thread with 2048 bytes of stack being really careful.

In theory I suppose a thread can use no stack at all if it is careful...



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.