75 lines
2.9 KiB
Diff
75 lines
2.9 KiB
Diff
From 2ee6decb1435c8331404d590f7a5a2d6a5711760 Mon Sep 17 00:00:00 2001
|
|
From: SeongJae Park <sj@kernel.org>
|
|
Date: Mon, 16 Jun 2025 10:23:44 -0700
|
|
Subject: mm/damon/paddr: use alloc_migartion_target() with no migration
|
|
fallback nodemask
|
|
|
|
Patch series "mm/damon: use alloc_migrate_target() for
|
|
DAMOS_MIGRATE_{HOT,COLD}".
|
|
|
|
DAMOS_MIGRATE_{HOT,COLD} implementation resembles that for demotion, and
|
|
hence the behavior is also similar to that. But, since those are not only
|
|
for demotion but general migrations, it would be better to match with that
|
|
for move_pages() system call. Make the implementation and the behavior
|
|
more similar to move_pages() by not setting migration fallback nodes, and
|
|
using alloc_migration_target() instead of alloc_migrate_folio().
|
|
|
|
alloc_migrate_folio() was renamed from alloc_demote_folio() and been
|
|
non-static function, to let DAMOS_MIGRATE_{HOT,COLD} call it. As
|
|
alloc_migration_target() is called instead, the renaming and de-static
|
|
changes are no more required but could only make future code readers be
|
|
confused. Revert the changes, too.
|
|
|
|
|
|
This patch (of 3):
|
|
|
|
DAMOS_MIGRATE_{HOT,COLD} implementation resembles that for
|
|
demote_folio_list(). Because those are not only for demotion but general
|
|
folio migrations, it makes more sense to behave similarly to move_pages()
|
|
system call. Make the behavior more similar to move_pages(), by using
|
|
alloc_migration_target() instead of alloc_migrate_folio(), without
|
|
fallback nodemask.
|
|
|
|
Link: https://lkml.kernel.org/r/20250616172346.67659-2-sj@kernel.org
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Reviewed-by: Joshua Hahn <joshua.hahnjy@gmail.com>
|
|
Cc: David Hildenbrand <david@redhat.com>
|
|
Cc: Honggyu Kim <honggyu.kim@sk.com>
|
|
Cc: Johannes Weiner <hannes@cmpxchg.org>
|
|
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
|
|
Cc: Michal Hocko <mhocko@kernel.org>
|
|
Cc: Qi Zheng <zhengqi.arch@bytedance.com>
|
|
Cc: Shakeel Butt <shakeel.butt@linux.dev>
|
|
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
|
---
|
|
mm/damon/paddr.c | 4 +---
|
|
1 file changed, 1 insertion(+), 3 deletions(-)
|
|
|
|
--- a/mm/damon/paddr.c
|
|
+++ b/mm/damon/paddr.c
|
|
@@ -386,7 +386,6 @@ static unsigned int __damon_pa_migrate_f
|
|
int target_nid)
|
|
{
|
|
unsigned int nr_succeeded = 0;
|
|
- nodemask_t allowed_mask = NODE_MASK_NONE;
|
|
struct migration_target_control mtc = {
|
|
/*
|
|
* Allocate from 'node', or fail quickly and quietly.
|
|
@@ -396,7 +395,6 @@ static unsigned int __damon_pa_migrate_f
|
|
.gfp_mask = (GFP_HIGHUSER_MOVABLE & ~__GFP_RECLAIM) |
|
|
__GFP_NOWARN | __GFP_NOMEMALLOC | GFP_NOWAIT,
|
|
.nid = target_nid,
|
|
- .nmask = &allowed_mask
|
|
};
|
|
|
|
if (pgdat->node_id == target_nid || target_nid == NUMA_NO_NODE)
|
|
@@ -406,7 +404,7 @@ static unsigned int __damon_pa_migrate_f
|
|
return 0;
|
|
|
|
/* Migration ignores all cpuset and mempolicy settings */
|
|
- migrate_pages(migrate_folios, alloc_migrate_folio, NULL,
|
|
+ migrate_pages(migrate_folios, alloc_migration_target, NULL,
|
|
(unsigned long)&mtc, MIGRATE_ASYNC, MR_DAMON,
|
|
&nr_succeeded);
|
|
|