Intercepted Memory Functions
The TMS library, mvmalloc.so, in Memory Machine supports a restricted set of glibc.so memory-management functions.
Below is the list of glibc.so functions supported by TMS.
Function Group | glibc.so Function | Notes |
---|---|---|
Memory Allocation | aligned_alloc() |
|
calloc() |
||
free() |
||
malloc() |
||
malloc_usable_size() |
||
memalign() |
||
posix_memalign() |
||
realloc() |
||
valloc() |
||
Memory-mapped file I/O | mmap() |
Calls are rerouted to mvmalloc.so from glibc.so only if 1) MAP_PRIVATE and MAP_ANONYMOUS are set and 2) the data meet the size and flag restrictions in the configuration file specified by MVMALLOC_CONFIG. All other calls are forwarded directly to glibc.so. |
mmap64() |
Same as mmap() . |
|
madvise() |
Memory Machine supports only the MADV_DONTNEED and MADV_REMOVE advise values. | |
mprotect() |
Memory Machine cannot guarantee 4KB-aligned mprotect() requests. When a page
under Memory Machine's management is changed to something other than read/write
(PROT_READ | PROT_WRITE), Memory Machine 1) converts that page to a private anonymous mapping, 2) permanently removes
the page from MVMalloc’s internal data structures and maps, and 3) forwards the
call to glibc for handling in DRAM. |
|
mremap() |
The MREMAP_FIXED flag is not supported. | |
munmap() |
Portions of the region to be unmapped that are not managed by Memory Machine are presumed to have been allocated by glibc.so, so their unmap requests are also forwarded to glibc.so. | |
Execution | execle() |
A subset of the execution functions are implemented to enable the
mvmalloc library to preserve the environment when managing
applications. |
execpve() |
||
execve() |
||
I/O | io_getevents() |
A subset of I/O functions are implemented to enable the mvmalloc library to get and send asynchronous I/O. |
io_submit() |
Note: It is possible to capture either or both of the function groups (Memory Allocation
and Memory-mapped I/O). Which groups are captured is controlled by a configuration file
on startup. See Configuration Files.