[cmucl-help] Segmentation fault when trying to use the max heap
Raymond Toy
toy.raymond at gmail.com
Sun Feb 28 05:45:53 UTC 2016
>>>>> "Chisheng" == Chisheng Huang <cph at chi-square-works.com> writes:
Chisheng> Raymond Toy <toy.raymond at gmail.com> writes:
>>>>>>> "Chisheng" == Chisheng Huang <cph at chi-square-works.com> writes:
[snip]
>>
>> Thanks for the report. I'm guessing that this means that address
>> space used for the heap overlaps some other important system space.
>>
>> Can you send the output of cat /proc/<pid>/maps for the lisp process
>> with a heap size of 1500? That should give a hint at what's going on.
>> CMUCL expects that the heap can use all of the memory from 0x58100000
>> to 0xbe000000. This seems to be true on my Fedora system.
>>
>> What 32-bit linux system are you running on?
Chisheng> It's Ubuntu 11.10 on a virtual machine (VirtualBox). The
Chisheng> /proc/<pid>/maps of a CMUCL process with a heap size of 1500 is
Chisheng> attached at the end. Thank you very much.
[snip]
Chisheng> 58100000-58102000 rwxp 01cab000 08:01 1416903 /usr/local/cmucl-2016-02/lib/cmucl/lib/lisp-sse2.core
Chisheng> 58102000-b5d00000 rwxp 00000000 00:00 0
Ok. The max memory (in x86-validate-linux.h) expects to be able to
allocate memory up to 0xbe000000...
Chisheng> b7b82000-b7fea000 rw-p 00000000 00:00 0
Chisheng> b7ffe000-b8000000 rw-p 00000000 00:00 0
Chisheng> bffdf000-c0000000 rw-p 00000000 00:00 0 [stack]
but this map shows that you have something at 0xb7b82000. This
probably explains why you can't allocate the full 1631 MB that
x86-validate-linux.h thinks are available. For portability I'll have
to reduce that limit so that the top of the heap is below 0xb7b82000
or so for a max of 1530 MB or so.
Can you verify that -dynamic-space-size 1530 works?
Thanks,
--
Ray
More information about the cmucl-help
mailing list