[RFC PATCH 1/1] mm: mark folio accessed in minor fault

From: zhaoyang.huang
Date: Wed Dec 20 2023 - 05:31:38 EST


From: Zhaoyang Huang <zhaoyang.huang@xxxxxxxxxx>

Inactive mapped folio will be promoted to active only when it is
scanned in shrink_inactive_list, while the vfs folio will do this
immidiatly when it is accessed. These will introduce two affections:

1. NR_ACTIVE_FILE is not accurate as expected.
2. Low reclaiming efficiency caused by dummy nactive folio which should
be kept as earlier as shrink_active_list.

I would like to suggest mark the folio be accessed in minor fault to
solve this situation.

Signed-off-by: Zhaoyang Huang <zhaoyang.huang@xxxxxxxxxx>
---
mm/filemap.c | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/mm/filemap.c b/mm/filemap.c
index f0a15ce1bd1b..b1ee6ce716c2 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -3273,6 +3273,11 @@ vm_fault_t filemap_fault(struct vm_fault *vmf)
*/
folio = filemap_get_folio(mapping, index);
if (likely(!IS_ERR(folio))) {
+ /*
+ * try to promote inactive folio here when it is accessed
+ * as minor fault
+ */
+ folio_mark_accessed(folio);
/*
* We found the page, so try async readahead before waiting for
* the lock.
--
2.25.1