From 571cc9a34ef6c20673f0286c8e5a454ec12c91ef Mon Sep 17 00:00:00 2001 From: SJ Park Date: Wed, 8 Jul 2026 06:53:52 -0700 Subject: [PATCH] mm/damon/core: s/damon_max_nr_accesses()/damon_nr_samples_per_aggr()/ damon_max_nr_accesses() actually returns the number of samples DAMON checks for each region per each aggregation interval. Rename it to better describe what it really does and not confusing for more general uses. Link: https://lore.kernel.org/20260708135359.122587-3-sj@kernel.org Signed-off-by: SJ Park Signed-off-by: Andrew Morton --- include/linux/damon.h | 10 ++++++---- mm/damon/core.c | 4 ++-- mm/damon/lru_sort.c | 2 +- mm/damon/ops-common.c | 2 +- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/include/linux/damon.h b/include/linux/damon.h index 19b7e839bde0..63f596957c1f 100644 --- a/include/linux/damon.h +++ b/include/linux/damon.h @@ -1056,15 +1056,17 @@ static inline bool damon_target_has_pid(const struct damon_ctx *ctx) return ctx->ops.id == DAMON_OPS_VADDR || ctx->ops.id == DAMON_OPS_FVADDR; } -static inline unsigned int damon_max_nr_accesses(const struct damon_attrs *attrs) +/* Returns number of samples per aggregation interval */ +static inline unsigned int damon_nr_samples_per_aggr( + const struct damon_attrs *attrs) { unsigned long sample_interval; - unsigned long max_nr_accesses; + unsigned long nr_samples; sample_interval = attrs->sample_interval ? : 1; - max_nr_accesses = min(attrs->aggr_interval / sample_interval, + nr_samples = min(attrs->aggr_interval / sample_interval, (unsigned long)UINT_MAX); - return max_nr_accesses ? : 1; + return nr_samples ? : 1; } diff --git a/mm/damon/core.c b/mm/damon/core.c index a15005db8289..177e5abc981e 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -880,14 +880,14 @@ static unsigned int damon_age_for_new_attrs(unsigned int age, static unsigned int damon_accesses_bp_to_nr_accesses( unsigned int accesses_bp, struct damon_attrs *attrs) { - return accesses_bp * damon_max_nr_accesses(attrs) / 10000; + return accesses_bp * damon_nr_samples_per_aggr(attrs) / 10000; } /* Convert nr_accesses to access ratio in bp (per 10,000) */ static unsigned int damon_nr_accesses_to_accesses_bp( unsigned int nr_accesses, struct damon_attrs *attrs) { - return mult_frac(nr_accesses, 10000, damon_max_nr_accesses(attrs)); + return mult_frac(nr_accesses, 10000, damon_nr_samples_per_aggr(attrs)); } static unsigned int damon_nr_accesses_for_new_attrs(unsigned int nr_accesses, diff --git a/mm/damon/lru_sort.c b/mm/damon/lru_sort.c index e8c389ad3226..7e077084cb03 100644 --- a/mm/damon/lru_sort.c +++ b/mm/damon/lru_sort.c @@ -303,7 +303,7 @@ static int damon_lru_sort_apply_parameters(void) goto out; err = -ENOMEM; - hot_thres = damon_max_nr_accesses(&attrs) * + hot_thres = damon_nr_samples_per_aggr(&attrs) * hot_thres_access_freq / 1000; hot_scheme = damon_lru_sort_new_hot_scheme(hot_thres); if (!hot_scheme) diff --git a/mm/damon/ops-common.c b/mm/damon/ops-common.c index 6bdd1cfd3863..89c694f6e4fa 100644 --- a/mm/damon/ops-common.c +++ b/mm/damon/ops-common.c @@ -112,7 +112,7 @@ int damon_hot_score(struct damon_ctx *c, struct damon_region *r, int hotness; freq_subscore = r->nr_accesses * DAMON_MAX_SUBSCORE / - damon_max_nr_accesses(&c->attrs); + damon_nr_samples_per_aggr(&c->attrs); age_in_sec = (unsigned long)r->age * c->attrs.aggr_interval / 1000000; if (age_in_sec)