1.1.5 Memory Management

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

  • The MAP_HUGETLB flag has been implemented in mmap to support huge-page memory mapping with hugetlbfs.

  • Problems have been addressed with kswapd and page reclaim behavior during large copy operations or when memory was low.

  • Improved page table access scalability in threaded huge-page workloads by reducing lock contention in the page table.

    For more information, see http://lwn.net/Articles/568076/.

  • Improve page-fault scalability in hugetlb by handing concurrent page faults. Previously, the kernel could only handle a single hugetlb page fault at a time. Typically, the startup time for a 10-gigabyte Oracle database, which generates approximately 5000 page table faults, decreases to 25.7 seconds from 37.5 seconds. Larger workloads should experience even greater improvements in start-up times.

  • Support gigantic page allocation in hugetlb at runtime in addition to the existing boot-time allocation.

  • The unqueued slab allocator (SLUB) is now the default memory allocator for kernel objects. SLUB eliminates the fragmentation that is caused by memory allocation and deallocation by reusing memory that was previously allocated to a data object of the same type.