Messages in this thread | | | Date | Tue, 4 Jan 2005 13:21:11 -0800 | From | Andrew Morton <> | Subject | Re: ptrace single-stepping change breaks Wine |
| |
Mike Hearn <mh@codeweavers.com> wrote: > > Also a precise description of what flex-mmap does would be good. Google > wasn't too informative, best I could get was that it means mmap > allocates from the "top" of the address space down. But where is the top > exactly?
Ingo has described it thus:
before:
0x08000000 ... binary code 0x08xxxxxx ... brk area 0x40000000 ... start of mmap, new mmaps go after old ones 0xbfxxxxxx ... stack
after:
0x08000000 ... binary code 0x08xxxxxx ... brk area 0xbfxxxxxx ... _end_ of all mmaps, new mmaps go below old ones 0xbfyyyyyy ... stack
the 'after' layout guarantees that brk area (malloc()) can grow unlimited and mmap() can grow unlimited - they will meet somewhere inbetween when almost all of the VM is used up. [the 'top' of the mmaps in the 'after' layout is constrained by the stack ulimit - the stack must still fit and we never allocate into the stack's yet unallocated and growable hole.]
with the 'before' layout we've got 900 MB for brk() and 1.9GB for mmaps() - a rigid limit. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |