-
Notifications
You must be signed in to change notification settings - Fork 423
Memory hooks
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 |