UPSTREAM: mm/damon/core: skip updating nr_accesses_bp for each aggregation interval
damon_merge_regions_of(), which is called for each aggregation interval, updates nr_accesses_bp to nr_accesses * 10000. However, nr_accesses_bp is updated for each sampling interval via damon_moving_sum() using the aggregation interval as the moving time window. And by the definition of the algorithm, the value becomes same to discrete-window based sum for each time window-aligned time. Hence, nr_accesses_bp will be same to nr_accesses * 10000 for each aggregation interval without explicit update. Remove the unnecessary update of nr_accesses_bp in damon_merge_regions_of(). Link: https://lkml.kernel.org/r/20230915025251.72816-8-sj@kernel.org Signed-off-by: SeongJae Park <sj@kernel.org> Cc: Brendan Higgins <brendanhiggins@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> (cherry picked from commit 401807a316bb913f5eefcaf8343575ec9296d6b1) Bug:407463672 Change-Id: Ie3c71d6b23a0c722ae835d4ce1f82896bc56a960 Signed-off-by: daiyang5 <daiyang5@xiaomi.com>
This commit is contained in:
committed by
Suren Baghdasaryan
parent
5a8bcac5f6
commit
251e8ac61a
@@ -1183,8 +1183,6 @@ static void damon_merge_regions_of(struct damon_target *t, unsigned int thres,
|
||||
else
|
||||
r->age++;
|
||||
|
||||
r->nr_accesses_bp = r->nr_accesses * 10000;
|
||||
|
||||
if (prev && prev->ar.end == r->ar.start &&
|
||||
abs(prev->nr_accesses - r->nr_accesses) <= thres &&
|
||||
damon_sz_region(prev) + damon_sz_region(r) <= sz_limit)
|
||||
|
Reference in New Issue
Block a user