Re: [PATCH] mm,thp: stop leaking unreleased file pages

From: Song Liu
Date: Sun May 24 2020 - 20:06:18 EST




> On May 23, 2020, at 6:50 PM, Hugh Dickins <hughd@xxxxxxxxxx> wrote:
>
> When collapse_file() calls try_to_release_page(), it has already
> isolated the page: so if releasing buffers happens to fail (as it
> sometimes does), remember to putback_lru_page(): otherwise that page is
> left unreclaimable and unfreeable, and the file extent uncollapsible.
>
> Signed-off-by: Hugh Dickins <hughd@xxxxxxxxxx>
> Fixes: 99cb0dbd47a1 ("mm,thp: add read-only THP support for (non-shmem) FS")
> Cc: stable@xxxxxxxxxxxxxxx # v5.4+

Acked-by: Song Liu <songliubraving@xxxxxx>

Thanks for the fix!

> ---
>
> mm/khugepaged.c | 1 +
> 1 file changed, 1 insertion(+)
>
> --- 5.7-rc6/mm/khugepaged.c 2020-04-12 16:24:37.710999073 -0700
> +++ linux/mm/khugepaged.c 2020-05-10 17:06:21.788398646 -0700
> @@ -1692,6 +1692,7 @@ static void collapse_file(struct mm_stru
> if (page_has_private(page) &&
> !try_to_release_page(page, GFP_KERNEL)) {
> result = SCAN_PAGE_HAS_PRIVATE;
> + putback_lru_page(page);
> goto out_unlock;
> }
>