etascale/argodsm

ArgoDSM reserved VM possibly too large under MEMFD

Closed this issue · 1 comments

It appears that when using MEMFD, the default size of the ArgoDSM VM is too large for "some" systems.

When inspecting the memory mappings of a running ArgoDSM process using SHM, the default value of ARGO_END appears too large and intrudes on the mapping of the heap among other things.

5562b64b2000-5562b64b3000 rw-p 0009c000 103:08 8528772                   /home/sven/git/argodsm/build/bin/mpi/barrierTests
5562b6d06000-5562b7108000 rw-p 00000000 00:00 0                          [heap]
7fe8a0000000-7fe8a0021000 rw-p 00000000 00:00 0 

As a result the initial anonymous mapping below fails using MEMFD:

start_addr = ::mmap(static_cast<void*>(ARGO_START), ARGO_SIZE, PROT_NONE, flags, -1, 0);

This mapping succeeds on my system if ARGO_END is set to for example 0x500000000000l (Or 0x550000000000l, while 0x560000000000l occasionally fails). I have observed the same behavior (approximate mapping of the heap and failure to map using MEMFD) on other Debian-based machines.

Having been occupied with other projects for a while I seem to have forgotten there was already a related issue open. Closing this and referring to #124 instead.