On Tue, Apr 28, 2020 at 3:11 PM Nitin Gupta wrote: > For some applications, we need to allocate almost all memory as > hugepages. However, on a running system, higher-order allocations can > fail if the memory is fragmented. Linux kernel currently does on-demand > compaction as we request more hugepages, but this style of compaction > incurs very high latency. Experiments with one-time full memory > compaction (followed by hugepage allocations) show that kernel is able > to restore a highly fragmented memory state to a fairly compacted memory > state within <1 sec for a 32G system. Such data suggests that a more > proactive compaction can help us allocate a large fraction of memory as > hugepages keeping allocation latencies low. > > For a more proactive compaction, the approach taken here is to define > a new tunable called 'proactiveness' which dictates bounds for external > fragmentation wrt HUGETLB_PAGE_ORDER order which kcompactd tries to > maintain. > > The tunable is exposed through sysfs: > /sys/kernel/mm/compaction/proactiveness > > > Ping. Any comments/feedback? -Nitin