On Tue, Apr 26, 2022 at 07:44:07AM -0700, Zach O'Keefe wrote: > @@ -2365,6 +2375,7 @@ static int khugepaged(void *none) > { > struct mm_slot *mm_slot; > struct collapse_control cc = { > + .enforce_pte_scan_limits = true, > .last_target_node = NUMA_NO_NODE, > .gfp = &alloc_hugepage_khugepaged_gfpmask, > .alloc_hpage = &khugepaged_alloc_page, > @@ -2512,6 +2523,7 @@ int madvise_collapse(struct vm_area_struct *vma, struct vm_area_struct **prev, > unsigned long start, unsigned long end) > { > struct collapse_control cc = { > + .enforce_pte_scan_limits = false, > .last_target_node = NUMA_NO_NODE, > .hpage = NULL, > .gfp = &alloc_hugepage_madvise_gfpmask, This changes the semantics of the new madvise(). IMHO it'll be ideal if this patch is moved before the introduction of MADV_COLLAPSE, so the new madvise() will have a consistent behavior. -- Peter Xu