On Tue, 10 Mar 2020 15:25:39 -0700 Nitin Gupta <nigupta@xxxxxxxxxx> 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) shows 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. hn, there was plenty of feedback for earlier versions, but then everyone went quiet. I guess it's time for a refresh and resend, please. With some code comments, please! Is the code really so self-evident that this: +/* Compact all zones within a node according to proactiveness */ is the only thing which needs to be said about it? How is the reader to know what proactive compaction actually *is*? What does extfrag_for_order() do and what does its return value mean? Please document /sys/kernel/mm/compaction/proactiveness in the appropriate place under Documentation/