From 9ecb2fcca3b3e2e38423f6eda468b05ee04614ff Mon Sep 17 00:00:00 2001 From: Peifeng Li Date: Mon, 22 Aug 2022 18:21:29 +0800 Subject: [PATCH] ANDROID: avoid huge-page not to clear trylock-bit after shrink_page_list. Clearing trylock-bit of page shrinked by shrnk_page_list in advance which avoids huge-page not to clear trylock-bit after shrink_page_list. Fixes: 1f8f6d59a298 ("ANDROID: vendor_hook: Add hook to not be stuck ro rmap lock in kswapd or direct_reclaim") Bug: 240003372 Signed-off-by: Peifeng Li Change-Id: Iac4d60ec3497d9bb7ba1f001a5c08a604daf4f5a --- mm/vmscan.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/mm/vmscan.c b/mm/vmscan.c index 0f82957c4de7..e3a885f6a1b5 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -1490,12 +1490,11 @@ free_it: * Is there need to periodically free_page_list? It would * appear not as the counts should be low */ + trace_android_vh_page_trylock_clear(page); if (unlikely(PageTransHuge(page))) destroy_compound_page(page); - else { - trace_android_vh_page_trylock_clear(page); + else list_add(&page->lru, &free_pages); - } continue; activate_locked_split: