A user is trying to allocate 1TB of anonymous memory in parallel on 48
cores (4 NUMA nodes). The kernel ends up spinning in
isolate_freepages_block().
I thought to help it along by using MAP_POPULATE, but then my
MADV_HUGEPAGE won't be seen until after mmap() completes, with pages
already populated. Are MAP_POPULATE and MADV_HUGEPAGE mutually exclusive?
Is my only option to serialize those memory allocations, and fault in
those pages manually? Or perhaps use mlock()?
- MAP_POPULATE vs. MADV_HUGEPAGES Avi Kivity
-