Re: [PATCH] mm: map maximum pages possible in finish_fault
From: Lorenzo Stoakes
Date: Tue Feb 10 2026 - 08:39:53 EST
On Tue, Feb 10, 2026 at 06:58:37PM +0530, Dev Jain wrote:
>
> On 06/02/26 8:52 pm, Matthew Wilcox wrote:
> > On Fri, Feb 06, 2026 at 07:26:48PM +0530, Dev Jain wrote:
> >> We test the patch with the following userspace program. A shmem VMA of
> >> 2M is created, and faulted in, with sysfs setting
> >> hugepages-2048k/shmem_enabled = always, so that the pagecache is populated
> >> with a 2M folio. Then, a 64K VMA is created, and we fault on each page.
> >> Then, we do MADV_DONTNEED to zap the pagetable, so that we can fault again
> >> in the next iteration. We measure the accumulated time taken during
> >> faulting the VMA.
> >>
> >> On arm64,
> >>
> >> without patch:
> >> Total time taken by inner loop: 4701721766 ns
> >>
> >> with patch:
> >> Total time taken by inner loop: 516043507 ns
> >>
> >> giving a 9x improvement.
> > It's nice that you can construct a test-case that shows improvement, but
> > is there any real workload that benefits from this?
>
> I can try to measure this. But, I constructed that testcase to test the
> code path, not to show a perf boost (although the boost is obvious enough
> so why not show it). As I say in the description:
>
> "Align finish_fault with filemap_map_pages, and map as many pages as
> possible, without crossing VMA/PMD/file boundaries."
>
> The patch should rather be seen as an extension to 19773df031bc
> ("mm/fault: try to map the entire file folio in finish_fault()").
> The code which my patch removes, was added when the norm was to still
> perform per-page fault, the argument being, RSS inflation.
>
> Perhaps I can polish the patch description so that it clearly mentions
> what the objective is.
>
Can we make any new respin of this RFC please. I am especially not
confident given the immediate syzbot etc.
If it's a speculative thing without great justification the series should
be RFC until such time the community decides it's worthwhile.
Thanks, Lorenzo