Re: [PATCH mm-new 1/3] mm/khugepaged: skip unsuitable VMAs earlier in khugepaged_scan_mm_slot()
From: Hugh Dickins
Date: Tue Sep 16 2025 - 02:42:33 EST
On Tue, 16 Sep 2025, Lance Yang wrote:
> Hi Hugh,
>
> Thanks for taking a look and for raising this important point!
>
> On 2025/9/16 13:32, Hugh Dickins wrote:
> > On Sun, 14 Sep 2025, Lance Yang wrote:
> >
> >> From: Lance Yang <lance.yang@xxxxxxxxx>
> >>
> >> Let's skip unsuitable VMAs early in the khugepaged scan; specifically,
> >> mlocked VMAs should not be touched.
> >
> > Why? That's a change in behaviour, isn't it?
> >
> > I'm aware that hugepage collapse on an mlocked VMA can insert a fault
> > latency, not universally welcome; but I've not seen discussion, let
> > alone agreement, that current behaviour should be changed.
> > Somewhere in yet-to-be-read mail? Please give us a link.
> >
> > Hugh
>
> You're right, this is indeed a change in behaviour. But it's specifically
> for khugepaged.
>
> Users of mlock() expect low and predictable latency. THP collapse is a
> heavy operation that introduces exactly the kind of unpredictable delays
> they want to avoid. It has to unmap PTEs, copy data from the small folios
> to a new THP, and then remap the THP back to the PMD ;)
>
> IMO, that change is acceptable because THP is generally transparent to
> users, and khugepaged does not guarantee when THP collapse or split will
> happen.
I disagree. Many of those who have khugepaged enabled would prefer
it to give them hugepages, even or especially on mlocked areas.
If you make that change, it must be guarded by a sysfs or sysctl tuning.
Perhaps it could share the sysctl_compact_unevictable_allowed tuning
(I'm not sure whether that's a good or bad idea: opinions will differ).
Hugh
>
> Well, we don't have a discussion on that, just something I noticed.
>
> Thanks,
> Lance