On Linux, the default initial heap is mapped at address
#x20000000
(0.5GB). LispWorks then tries to locate the location of dynamic libraries, and marks a region around these libraries that should not be used (by default 64MB from the bottom). In most cases this suffices to avoid clashes.
Problems can arise if the memory at
#x20000000
or above is already used by another part of the software. If that memory gets used before LispWorks is mapped, LispWorks must be relocated elsewhere, typically to a higher address.
If the memory above LispWorks gets used by other parts of the software after LispWorks was mapped, it may be possible to avoid the problem by reserving some memory above LispWorks by supplying ReserveSize .
The location of dynamic libraries differs between Linux configurations, and that needs to be taken into account. For most cases, including the cases where the libraries are mapped at
#x40000000
or somewhere above
#x28000000
, the mechanism for detecting libraries works and no action is required.
In principle LispWorks (32-bit) for Linux can grow up to some distance below
#xBF000000
(almost 2.5GB), though this depends on the OS kernel allowing this size.
Note:
In LispWorks 5.0 and previous, we told some customers to relocate above the libraries, for example at
#x50000000
or
#x48000000
, but this should not be needed in LispWorks 6.1.
LispWorks User Guide and Reference Manual - 21 Dec 2011