1.1.6 Memory Management

The following notable memory management features are implemented in UEK R5:

  • Heterogeneous Memory Management (HMM) support.  UEK R5 introduces HMM, a helper layer that allows device drivers to mirror address space for a process. This new memory management facility includes features to shadow the CPU page table of a process into a device specific page table and to keep both the tables synchronized; to handle DMA mapping for the shadowed page table; and to migrate private anonymous memory to private device memory and vice versa. These features allow device drivers to avoid pinning memory which blocks some kernel features and allows the user space API to decouple from the requirement to manually manage memory copies to and from device memory. The change is transparent to the user space, effectively allowing a library to use GPU, DSP or FPGA without requiring links within the application.

  • hugetlbfs hole punching enhancement.  Updates to the userfaultfd mechanism to allow it to deliver a SIGBUS signal to the faulting process, instead of a page-fault event. This update to userfaultfd allows an application to prevent pages from being allocated implicitly when a hole in a hugetlbfs file is accessed by using the mapped address so that an application can explicitly manage page allocations of hugetlbfs files.