On 12/02/25 4:53 am, Andrew Morton wrote:
On Tue, 11 Feb 2025 16:43:09 +0530 Dev Jain <dev.jain@xxxxxxx> wrote:
This patchset extends khugepaged from collapsing only PMD-sized THPs to
collapsing anonymous mTHPs.
mTHPs were introduced in the kernel to improve memory management by allocating
chunks of larger memory, so as to reduce number of page faults, TLB misses (due
to TLB coalescing), reduce length of LRU lists, etc. However, the mTHP property
is often lost due to CoW, swap-in/out, and when the kernel just cannot find
enough physically contiguous memory to allocate on fault. Henceforth, there is a
need to regain mTHPs in the system asynchronously. This work is an attempt in
this direction, starting with anonymous folios.
In the fault handler, we select the THP order in a greedy manner; the same has
been used here, along with the same sysfs interface to control the order of
collapse. In contrast to PMD-collapse, we (hopefully) get rid of the mmap_write_lock().
---------------------------------------------------------
Testing
---------------------------------------------------------
The set has been build tested on x86_64.
For Aarch64,
1. mm-selftests: No regressions.
2. Analyzing with tools/mm/thpmaps on different userspace programs mapping
aligned VMAs of a large size, faulting in basepages/mTHPs (according to sysfs),
and then madvise()'ing the VMA, khugepaged is able to 100% collapse the VMAs.
It would be nice to provide some evidence that this patchset actually
makes Linux better for our users, and by how much.
Thanks, I think I'll skip v2 and shall await reviewer input.
Hi Andrew, thanks for your reply.
Although the introduction of mTHPs leads to the natural conclusion of
extending khugepaged to support mTHP collapse, I'll try to get some
performance statistics out.