On Tue, Apr 20, 2010 at 2:47 AM, Andrei Matei <[email protected]>wrote:

> Hi all,
>
> Does anybody know if/how I can obtain a virtual memory mapping that grows
> automatically on memory accesses that fall in the page just below the
> existing mapping, just like stacks do? On linux, stacks have this behavior,
> both "default" processes' stacks and stacks allocated for pthreads. It even
> works for stacks that I've allocated myself for pthreads (via mmap and
> pthread_attr_setstack). But I cannot get it to work for a mapping that is
> not used as a pthread stack; I get a SIGSEGV as soon as I step out of the
> page I've mapped with mmap. I've found the MAP_GROWSDOWN flag for mmap that
> is supposed to do this (at list some documentation implies it does it on
> IA-64), but on my AMD64 machine it doesn't work. Other documentation seems
> to suggest that MAP_GROWSDOWN is simply a hint to the kernel to try to
> return a region that has free space below, which would mean that it can't be
> combined with MAP_FIXED, which asks for a mapping at a fixed address, which
> is what I want (and anyway, it doesn't seem to work even if I don't use
> MAP_FIXED).
> Any idea about this?
>

Just a curious question Andrei. Why can't you use brk() instead of mmap() if
thats what you really want to achieve.

>
>
> Thanks,
>
> - Andrei
>

Reply via email to