diff options
| -rw-r--r-- | include/linux/damon.h | 10 | ||||
| -rw-r--r-- | mm/damon/core.c | 4 | ||||
| -rw-r--r-- | mm/damon/lru_sort.c | 2 | ||||
| -rw-r--r-- | 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) |
