Hi,
Bug #2741 comes from a user who was able to grab a dump of the VM mappings when the following error occurred:
HEAP_CreateSystemHeap system heap base address 0x80000000 not available
I know people have been seeing this intermittently for a while now, we have a few CodeWeavers support tickets with this problem too. The issue seems to be that the Linux native (main thread) stack was allocated here:
7fffb000 20K rwx-- [ stack ]
Surprise surprise, 0x7fffb000 + (1024 * 20) == 0x80000000
Unfortunately I lack enough knowledge about the kernels VM algorithms to say why it's being allocated here. For comparison on my Fedora Core 3 machine:
fef0d000 16K rwx-- [ stack ]
One other thing I don't understand. It seems the stack and the system heap overlap by exactly 1 byte, otherwise the mmap would not fail. But, this area is (theoretically) being protected by the preloader: so how can this be? There is something I'm missing here, I suspect an off-by-one error in my arithmetic.
thanks -mike
Mike Hearn mh@codeweavers.com writes:
I know people have been seeing this intermittently for a while now, we have a few CodeWeavers support tickets with this problem too. The issue seems to be that the Linux native (main thread) stack was allocated here:
7fffb000 20K rwx-- [ stack ]
Surprise surprise, 0x7fffb000 + (1024 * 20) == 0x80000000
Unfortunately I lack enough knowledge about the kernels VM algorithms to say why it's being allocated here. For comparison on my Fedora Core 3 machine:
fef0d000 16K rwx-- [ stack ]
One other thing I don't understand. It seems the stack and the system heap overlap by exactly 1 byte, otherwise the mmap would not fail.
No it doesn't overlap, a 20K mapping at 7fffb000 ends at 7fffffff. Most likely that kernel is configured for a 2Gb virtual address space.