On Fri, Jun 05, 2026 at 08:07:02PM +0200, David Hildenbrand (Arm) wrote: > 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.
All LGTM :) Unless sashiko tells us about something utterly broken (trivial things meh, existing things meh), or we see some massive breakage in testing, I think... *drum roll* We're good to take this this cycle :) Thanks Nico for your patience during this process and obviously David and Lance and all the other reviews for taking part. We got there in the end :) > > -- > Cheers, > > David Cheers, Lorenzo
