[PATCH] mm/rmap: vm_flags including VM_EXEC can exit timely

From: Zhiguo Jiang
Date: Tue Oct 24 2023 - 10:49:38 EST


When pra->vm_flags include VM_EXEC flag and folio is file detected in
folio_referenced_one(), the folio referenced traversal process can be
exited timely to reduce the detecting folio referenced time.

Signed-off-by: Zhiguo Jiang <justinjiang@xxxxxxxx>
---
mm/rmap.c | 2 ++
1 file changed, 2 insertions(+)
mode change 100644 => 100755 mm/rmap.c

diff --git a/mm/rmap.c b/mm/rmap.c
index 7a27a2b41802..932f3b7e8521
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -884,6 +884,8 @@ static bool folio_referenced_one(struct folio *folio,
if (referenced) {
pra->referenced++;
pra->vm_flags |= vma->vm_flags & ~VM_LOCKED;
+ if ((pra->vm_flags | VM_EXEC) && folio_is_file_lru(folio))
+ return false;
}

if (!pra->mapcount)
--
2.39.0