Re: [PATCH 1/5] mm/vmscan: put the redirtied MADV_FREE pages back to anonymous LRU list

From: Michal Hocko
Date: Mon Jul 12 2021 - 04:05:22 EST


On Sat 10-07-21 18:03:25, Miaohe Lin wrote:
> If the MADV_FREE pages are redirtied before they could be reclaimed, put
> the pages back to anonymous LRU list by setting SwapBacked flag and the
> pages will be reclaimed in normal swapout way. Otherwise MADV_FREE pages
> won't be reclaimed as expected.

Could you describe problem which you are trying to address? What does it
mean that pages won't be reclaimed as expected?

Also why is SetPageSwapBacked in shrink_page_list insufficient?

> Fixes: 802a3a92ad7a ("mm: reclaim MADV_FREE pages")
> Signed-off-by: Miaohe Lin <linmiaohe@xxxxxxxxxx>
> ---
> mm/vmscan.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/mm/vmscan.c b/mm/vmscan.c
> index a7602f71ec04..6483fe0e2065 100644
> --- a/mm/vmscan.c
> +++ b/mm/vmscan.c
> @@ -1628,6 +1628,7 @@ static unsigned int shrink_page_list(struct list_head *page_list,
> if (!page_ref_freeze(page, 1))
> goto keep_locked;
> if (PageDirty(page)) {
> + SetPageSwapBacked(page);
> page_ref_unfreeze(page, 1);
> goto keep_locked;
> }
> --
> 2.23.0

--
Michal Hocko
SUSE Labs