[RFC PATCH v3 3/3] mm/vmscan: demote folios using non-temporal stores
From: Huan Nguyen
Date: Tue Nov 03 2026 - 17:33:45 EST
Demoting cold folios to slower memory tiers using standard stores
pollutes CPU caches and incurs memory latency and bandwidth overhead.
Update demote_folio_list() to use MIGRATE_ASYNC_NONTEMPORAL, avoiding
CPU cache allocation and improving demotion throughput.
Suggested-by: Alirad Malek <alirad.malek@xxxxxxxxxxx>
Suggested-by: Dimitrios Palyvos-Giannas <dimitrios.palyvos@xxxxxxxxxxx>
Signed-off-by: Huan Nguyen <nhuhuan@xxxxxxxxxx>
---
mm/vmscan.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 9959ca158ce8..b44b7cdf8a03 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -1134,7 +1134,7 @@ static unsigned int demote_folio_list(struct list_head *demote_folios,
/* Demotion ignores all cpuset and mempolicy settings */
migrate_pages(demote_folios, alloc_demote_folio, NULL,
- (unsigned long)&mtc, MIGRATE_ASYNC, MR_DEMOTION,
+ (unsigned long)&mtc, MIGRATE_ASYNC_NONTEMPORAL, MR_DEMOTION,
&nr_succeeded);
return nr_succeeded;
--
2.56.0.398.g882cbad275-goog