[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1717488551-18053-1-git-send-email-yangge1116@126.com>
Date: Tue, 4 Jun 2024 16:09:11 +0800
From: yangge1116@....com
To: akpm@...ux-foundation.org
Cc: linux-mm@...ck.org,
linux-kernel@...r.kernel.org,
baolin.wang@...ux.alibaba.com,
liuzixing@...on.cn,
yangge <yangge1116@....com>
Subject: [PATCH] mm/gup: don't check page lru flag before draining it
From: yangge <yangge1116@....com>
If a page is added in pagevec, its ref count increases one, remove
the page from pagevec decreases one. Page migration requires the
page is not referrened by others except page mapping. Before
migrating a page, we should try to drain the page from pagevec in
case the page is in it, however, folio_test_lru() is not sufficient
to tell whether the page is in pagevec or not, if the page is in
pagevec, the migration will fail.
Remove the condition and drain lru once to ensure the page is not
referrenced by pagevec.
Signed-off-by: yangge <yangge1116@....com>
---
mm/gup.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mm/gup.c b/mm/gup.c
index ca0f5ce..890dcbc 100644
--- a/mm/gup.c
+++ b/mm/gup.c
@@ -2411,7 +2411,7 @@ static unsigned long collect_longterm_unpinnable_pages(
continue;
}
- if (!folio_test_lru(folio) && drain_allow) {
+ if (drain_allow) {
lru_add_drain_all();
drain_allow = false;
}
--
2.7.4
Powered by blists - more mailing lists