Re: [PATCH v4 0/3] Reclaim lazyfree THP without splitting

From: SeongJae Park
Date: Wed May 01 2024 - 12:08:22 EST


Hi Lance,

On Wed, 1 May 2024 12:26:57 +0800 Lance Yang <ioworker0@xxxxxxxxx> wrote:

> Hi all,
>
> This series adds support for reclaiming PMD-mapped THP marked as lazyfree
> without needing to first split the large folio via split_huge_pmd_address().
>
> When the user no longer requires the pages, they would use madvise(MADV_FREE)
> to mark the pages as lazy free. Subsequently, they typically would not re-write
> to that memory again.
>
> During memory reclaim, if we detect that the large folio and its PMD are both
> still marked as clean and there are no unexpected references(such as GUP), so we
> can just discard the memory lazily, improving the efficiency of memory
> reclamation in this case.
>
> Performance Testing
> ===================
>
> On an Intel i5 CPU, reclaiming 1GiB of lazyfree THPs using
> mem_cgroup_force_empty() results in the following runtimes in seconds
> (shorter is better):
>
> --------------------------------------------
> | Old | New | Change |
> --------------------------------------------
> | 0.683426 | 0.049197 | -92.80% |
> --------------------------------------------
>
> ---
>
> Changes since v3 [3]
> ====================
> - mm/rmap: integrate PMD-mapped folio splitting into pagewalk loop
> - Resolve compilation errors by handling the case where
> CONFIG_PGTABLE_HAS_HUGE_LEAVES is undefined (thanks to SeongJae Park)

I confirmed that the issue I reported before is disappeared with this version
of the patchset. For the fix,

Tested-by: SeongJae Park <sj@xxxxxxxxxx>


Thanks,
SJ

[...]