[ppc] Default stack size on ppc64

Richard W.M. Jones rjones at redhat.com
Thu Mar 26 08:57:36 UTC 2015


On Wed, Mar 25, 2015 at 07:57:25PM -0500, Steven Munroe wrote:
> On Wed, 2015-03-25 at 19:45 +0000, Richard W.M. Jones wrote:
> > On Wed, Mar 25, 2015 at 06:30:25PM +0000, David Woodhouse wrote:
> > > If the compiler is single-threaded, and increasing the stack ulimit 
> > > fixes the problem, that implies that the default stack ulimit is less 
> > > than the 8MiB-64KiB that it takes to reach the guard page...
> > 
> > Just so I'm clear, is the stack supposed to grow down automatically
> > (ie. does the stack automatically use MAP_GROWSDOWN), or is OCaml
> > supposed to do something when the stack hits the guard page?
> 
> It depends on which code is allocating the stack.
> 
> The default GLIBC implementation under pthread_create will allocate it
> as single anonymous mmap of 8MB then use mprotect on the lowest page to
> mark the guard page no-access. As in:

Is pthread_create used even for the main thread in the process (I
thought the kernel created that).  In any case threads aren't being
used explicitly by this process.

Anyway I guess the guard page is just a hole that causes the process
to abort (as observed) and is not a mechanism for automatically
growing the stack.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines.  Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v


More information about the devel mailing list