On 6/5/26 18:14, Nico Pache wrote: > The following series provides khugepaged with the capability to collapse > anonymous memory regions to mTHPs. > > To achieve this we generalize the khugepaged functions to no longer depend > on PMD_ORDER. Then during the PMD scan, we use a bitmap to track individual > pages that are occupied (!none/zero). After the PMD scan is done, we use > the bitmap to find the optimal mTHP sizes for the PMD range. The > restriction on max_ptes_none is removed during the scan, to make sure we > account for the whole PMD range in the bitmap. When no mTHP size is > enabled, the legacy behavior of khugepaged is maintained. > > We currently only support max_ptes_none values of 0 or HPAGE_PMD_NR - 1 > (ie 511). If any other value is specified, the kernel will emit a warning > and mTHP collapse will default to max_ptes_none=0. If a mTHP collapse is > attempted, but contains swapped out, or shared pages, we don't perform > the collapse. > It is now also possible to collapse to mTHPs without requiring the PMD THP > size to be enabled. These limitations are to prevent collapse "creep" > behavior. This prevents constantly promoting mTHPs to the next available > size, which would occur because a collapse introduces more non-zero pages > that would satisfy the promotion condition on subsequent scans. > > Patch 1-2: Generalize hugepage_vma_revalidate and alloc_charge_folio > for arbitrary orders. > Patch 3: Rework max_ptes_* handling into helper functions > Patch 4: Generalize __collapse_huge_page_* for mTHP support > Patch 5: Require collapse_huge_page to enter/exit with the lock dropped > Patch 6: Generalize collapse_huge_page for mTHP collapse > Patch 7: Skip collapsing mTHP to smaller orders > Patch 8-9: Add per-order mTHP statistics and tracepoints > Patch 10: Introduce collapse_possible_orders helper functions > Patch 11-13: Introduce bitmap and mTHP collapse support, fully enabled > Patch 14: Documentation >
Went through it and didn't find any blockers. Let's wait for Lorenzo's assessment. If he also doesn't find anything major, I think we can move forward with merging it and handle smaller things as follow-ups. -- Cheers, David
