Re: [PATCH v4 03/19] selftests/mm: scale khugepaged's collapse wait with the PMD size

Kiryl Shutsemau <[email protected]>
Newsgroups org.kvack.linux-mm,org.kernel.vger.linux-kernel,org.kernel.vger.linux-kselftest
Message-ID <aotFuN5NTCnawTy3@thinkstation>
On Tue, Aug 18, 2026 at 11:04:57AM +0100, Lorenzo Stoakes (ARM) wrote:
> On Sat, Aug 15, 2026 at 02:58:45AM +0100, Kiryl Shutsemau wrote:
> > From: "Kiryl Shutsemau (Meta)" <[email protected]>
> >
> > wait_for_scan() gives every case the same three seconds, whatever the huge
> > page costs to build.  collapse_full() asks for four of them: 8M at a 2M
> > PMD, but 2G at a 512M PMD -- arm64 with 64K base pages.
> >
> > Three seconds is thin at that size rather than generous.  Across 80 runs of
> > collapse_full() on arm64 with 64K pages the wait was half a second in 73 of
> > them, with a tail to two seconds.  The case has also timed out in a full
> > matrix run, reporting a failure for a collapse that was still going.
> >
> > Keep three seconds as the floor and add a second per 128M collapsed.  A 2M
> > PMD is unchanged.  A 512M PMD gets 19 seconds.
> 
> Yikes that does make this run really slow for 64 KiB page size machines and a
> key aim in the selftests is that they don't take too egregiously long to run.
> 
> Can this somehow be trimmed some other way?

It does not change how long the run takes.

The timeout is a ceiling on a poll loop, not a sleep: wait_for_scan()
breaks as soon as check_huge() sees the collapse, or as soon as
`full_scans` has advanced by two.

On arm64 with 64K pages the wait was half a second in 73 of 80 runs of
`collapse_full()`.  The 19 seconds is spent only when two khugepaged
passes have not completed in that time, which is the case this patch
exists to stop reporting as a failure. This can happen on very big
machines with high memory usage or in an emulator. I use QEMU TCG for
testing on ARM.

I will put that in the changelog for v5, with the before and after
runtime of the whole `./khugepaged` run.

-- 
  Kiryl Shutsemau / Kirill A. Shutemov
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.