mm/huge_memory: try to free subpage in swapcache when possible
authorMiaohe Lin <linmiaohe@huawei.com>
Mon, 4 Jul 2022 13:21:56 +0000 (21:21 +0800)
committerakpm <akpm@linux-foundation.org>
Mon, 18 Jul 2022 00:14:46 +0000 (17:14 -0700)
Subpages in swapcache won't be freed even if it is the last user of the
page until next time reclaim. It shouldn't hurt indeed, but we could try
to free these pages to save more memory for system.

Link: https://lkml.kernel.org/r/20220704132201.14611-12-linmiaohe@huawei.com
Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Muchun Song <songmuchun@bytedance.com>
Cc: Yang Shi <shy828301@gmail.com>
Cc: Zach O'Keefe <zokeefe@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/huge_memory.c

index 266afca39058714ade87ad104a86701ff42b5b9b..de3feb97f0e90f35a44472d5b0b9b32e06d20944 100644 (file)
@@ -2538,7 +2538,7 @@ static void __split_huge_page(struct page *page, struct list_head *list,
                 * requires taking the lru_lock so we do the put_page
                 * of the tail pages after the split is complete.
                 */
-               put_page(subpage);
+               free_page_and_swap_cache(subpage);
        }
 }