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 the page data structure.