[PATCH v4 09/17] mm/damon: convert to LRU refs based operations for MGLRU
From: Kairui Song via B4 Relay
Date: Thu Oct 15 2026 - 14:58:07 EST
From: Kairui Song <kasong@xxxxxxxxxxx>
damon_pa_pageout() cleared PG_referenced directly, which under MGLRU
may corrupts the folio's refs count in later commits. That flag is now
bit 0 of the count (LRU_REFS_FLAGS).
Reset the count instead under MGLRU.
Tested-by: zhaozhengzhuo <zhaozhengzhuo@xxxxxxxxxxxxx>
Signed-off-by: Kairui Song <kasong@xxxxxxxxxxx>
---
mm/damon/paddr.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/mm/damon/paddr.c b/mm/damon/paddr.c
index 2cfdc356b415..6412ff2396b3 100644
--- a/mm/damon/paddr.c
+++ b/mm/damon/paddr.c
@@ -279,7 +279,8 @@ static unsigned long damon_pa_pageout(struct damon_region *r,
else
*sz_filter_passed += folio_size(folio) / addr_unit;
- folio_clear_referenced(folio);
+ /* The regions is cold, better drop the hotness info */
+ folio_clear_lru_refs(folio);
folio_test_clear_young(folio);
if (!folio_isolate_lru(folio))
goto put_folio;
--
2.56.0