summaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorSeongJae Park <sj@kernel.org>2023-11-19 17:15:28 +0000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-11-22 15:38:37 +0100
commit62aec1e925996a358dbfc08daf5ec26243bbafd0 (patch)
tree1bb233f421641fba40dd9d7bcff0ae6e07cc0b6c /mm
parent6cba27abb6695b1facdd58a6480c611e3b41f1cb (diff)
downloadlinux-stable-62aec1e925996a358dbfc08daf5ec26243bbafd0.tar.gz
linux-stable-62aec1e925996a358dbfc08daf5ec26243bbafd0.tar.bz2
linux-stable-62aec1e925996a358dbfc08daf5ec26243bbafd0.zip
mm/damon/core: copy nr_accesses when splitting region
commit 1f3730fd9e8d4d77fb99c60d0e6ad4b1104e7e04 upstream. Regions split function ('damon_split_region_at()') is called at the beginning of an aggregation interval, and when DAMOS applying the actions and charging quota. Because 'nr_accesses' fields of all regions are reset at the beginning of each aggregation interval, and DAMOS was applying the action at the end of each aggregation interval, there was no need to copy the 'nr_accesses' field to the split-out region. However, commit 42f994b71404 ("mm/damon/core: implement scheme-specific apply interval") made DAMOS applies action on its own timing interval. Hence, 'nr_accesses' should also copied to split-out regions, but the commit didn't. Fix it by copying it. Link: https://lkml.kernel.org/r/20231119171529.66863-1-sj@kernel.org Fixes: 42f994b71404 ("mm/damon/core: implement scheme-specific apply interval") Signed-off-by: SeongJae Park <sj@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'mm')
-rw-r--r--mm/damon/core.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/mm/damon/core.c b/mm/damon/core.c
index 873d8bec677f..43e4fe7ef17e 100644
--- a/mm/damon/core.c
+++ b/mm/damon/core.c
@@ -1215,6 +1215,7 @@ static void damon_split_region_at(struct damon_target *t,
new->age = r->age;
new->last_nr_accesses = r->last_nr_accesses;
+ new->nr_accesses = r->nr_accesses;
damon_insert_region(new, r, damon_next_region(r), t);
}