* [RFC PATCH] mm/damon/core: reset age if nr_accesses changes between non-zero and zero
@ 2025-09-09 3:43 SeongJae Park
0 siblings, 0 replies; only message in thread
From: SeongJae Park @ 2025-09-09 3:43 UTC (permalink / raw)
Cc: SeongJae Park, Andrew Morton, damon, kernel-team, linux-kernel,
linux-mm
DAMON resets the age of a region if its nr_accesses value has
significantly changed. Specifically, the threshold is calculated as 20%
of largest nr_accesses of the current snapshot. This means that regions
changing the nr_accesses from zero to small non-zero value or from a
small non-zero value to zero will keep the age. Since many users treat
zero nr_accesses regions special, this can be confusing. Kernel code
including DAMOS' regions priority calculation and DAMON_STAT's idle time
calculation also treat zero nr_accesses regions special. Make it
unconfusing by resetting the age when the nr_accesses changes between
zero and a non-zero value.
Signed-off-by: SeongJae Park <sj@kernel.org>
---
mm/damon/core.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/mm/damon/core.c b/mm/damon/core.c
index be5942435d78..996647caca02 100644
--- a/mm/damon/core.c
+++ b/mm/damon/core.c
@@ -2261,6 +2261,9 @@ static void damon_merge_regions_of(struct damon_target *t, unsigned int thres,
damon_for_each_region_safe(r, next, t) {
if (abs(r->nr_accesses - r->last_nr_accesses) > thres)
r->age = 0;
+ else if ((!r->nr_accesses && r->last_nr_accesses) ||
+ (r->nr_accesses && !r->last_nr_accesses))
+ r->age = 0;
else
r->age++;
base-commit: 580b0ae8069448252cfea72b75ba5b0857c128e0
--
2.39.5
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2025-09-09 3:43 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-09 3:43 [RFC PATCH] mm/damon/core: reset age if nr_accesses changes between non-zero and zero SeongJae Park
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.