Skip to content
Yossi edited this page Dec 28, 2015 · 9 revisions

UCX includes the libucm library, which provides methods to intercept events which map and unmap memory to/from the current process. These may be used by transports to optimize their handling of user-allocated memory, for example:

  • Maintain memory registration cache (and get notification when cached memory is unmapped)
  • Modify the way memory is allocated (e.g hugepages, MAP_PRIVATE vs MAP_SHARED)

libucm API allows registering for the following events:

UCM_EVENT_MMAP mmap() is called
UCM_EVENT_MUNMAP munmap() is called
UCM_EVENT_MREMAP mremap() is called
UCM_EVENT_SHMAT shmat() is called
UCM_EVENT_SHMDT shmdt() is called
UCM_EVENT_SBRK sbrk() is called
UCM_EVENT_VM_MAPPED memory is mapped to the process
UCM_EVENT_VM_UNMAPPED memory is unmapped from the process
Clone this wiki locally