Re: [PATCHv2 4/5] mm/fault: Try to map the entire file folio in finish_fault()
From: Kiryl Shutsemau
Date: Mon Sep 22 2025 - 12:16:40 EST
On Sat, Sep 20, 2025 at 08:37:37AM +0100, Matthew Wilcox wrote:
> On Fri, Sep 19, 2025 at 01:40:35PM +0100, Kiryl Shutsemau wrote:
> > The finish_fault() function uses per-page fault for file folios. This
> > only occurs for file folios smaller than PMD_SIZE.
> >
> > The comment suggests that this approach prevents RSS inflation.
> > However, it only prevents RSS accounting. The folio is still mapped to
> > the process, and the fact that it is mapped by a single PTE does not
> > affect memory pressure. Additionally, the kernel's ability to map
> > large folios as PMD if they are large enough does not support this
> > argument.
> >
> > When possible, map large folios in one shot. This reduces the number of
> > minor page faults and allows for TLB coalescing.
> >
> > Mapping large folios at once will allow the rmap code to mlock it on
> > add, as it will recognize that it is fully mapped and mlocking is safe.
>
> Does this patch have any measurable effect? Almost all folios are
> mapped through do_fault_around(). I'm not objecting to the patch,
> but the commit message maybe makes this sound more important than it is.
You are right. My test cases used write faults to populate the VMA.
Mlock accounting is still broken with faultaround.
I will look into this.
I think we would need to rethink how we handle large folios in the
faultaround.
--
Kiryl Shutsemau / Kirill A. Shutemov