Memory Management
Several important memory management updates are available in UEK 8 with upstream changes that are included from v5.15 to v6.12.
- The folios data structure replaces struct page to provide better abstraction for the management of pages. Folios is a new data structure that represents one or more pages of memory. The new structure reduces type confusion and memory overhead.
- Huge Pages are improved with several useful updates, including:
- Update to handle hugeTLB faults when using per-VMA locking. Memory management operations like page faults and memory mapping can be handled in a more fine-grained and efficient manner reducing contention and improving concurrency.
- Split underused THPs, and improve THP=always policy. These changes improve overprovisioning of THPs in sparsely accessed memory areas.
- Continued improvements to memory control groups code, memcg, to decouple v1 fields in the code from the v2 code base.
-
Memory Mapping optimizations:
- Maple Tree replaced Red-Black Trees (RB Trees) for managing virtual memory areas (VMAs) for better performance with faster lookups, inserts, and deletes.
- Per-VMA mmap locking to improve concurrency and reduce contention in multithreaded applications with many VMAs.
- Introduction of the
ptdesc
data structure to optimize management of page tables by decoupling page metadata from thepage
data structure.