* [PATCH mm-unstable] mm/damon/core: ensure max threshold attempt for max_nr_regions violation
@ 2024-06-27 16:31 SeongJae Park
0 siblings, 0 replies; only message in thread
From: SeongJae Park @ 2024-06-27 16:31 UTC (permalink / raw)
To: SeongJae Park, Andrew Morton; +Cc: damon, linux-mm, linux-kernel
Since commit ed6cb9d022c8 ("mm/damon/core: increase regions merge
aggressiveness while respecting min_nr_regions") of mm-unstable,
kdamond_merge_regions() stops the repeated merge attempts for meeting
max_nr_regions if the merge threshold that increased for next iteration
is higher than the possible maximum threshold. Hence, it can skip a
merge attempt with the maximum threshold depending on the amount of the
threshold increase, the maximum threshold, and the last-used threshold
value. In extreme situations (e.g., region 1 has 100% access frequency,
region 2 has 0% access frequency, so on), this can degrade the
max_nr_regions violation recovery.
Fix this by stopping the loop by comparing the last-used threshold
instead of the to-be-used threshold, and if the last-used threshold is
same to or higher than the maximum possible threshold.
Fixes: ed6cb9d022c8 ("mm/damon/core: increase regions merge aggressiveness while respecting min_nr_regions") # mm-unstable
Closes: https://lore.kernel.org/20240626214954.46143-1-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org>
---
mm/damon/core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mm/damon/core.c b/mm/damon/core.c
index dac27b949403..7a87628b76ab 100644
--- a/mm/damon/core.c
+++ b/mm/damon/core.c
@@ -1718,7 +1718,7 @@ static void kdamond_merge_regions(struct damon_ctx *c, unsigned int threshold,
}
threshold = max(1, threshold * 2);
} while (nr_regions > c->attrs.max_nr_regions &&
- threshold <= max_thres);
+ threshold / 2 < max_thres);
}
/*
--
2.39.2
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2024-06-27 16:32 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-06-27 16:31 [PATCH mm-unstable] mm/damon/core: ensure max threshold attempt for max_nr_regions violation SeongJae Park
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox