[PATCH 6.1.y] mm/damon/core: make charge_addr_from aware of end-address exclusivity
SJ Park <[email protected]>
| Newsgroups | dev.linux.lists.damon,org.kernel.vger.stable |
|---|---|
| Message-ID | <[email protected]> |
From: SeongJae Park <[email protected]> DAMON region end address is exclusive one, but charge_addr_from is assigned assuming the end address is inclusive. As a result, DAMOS action to next up to min_region_sz memory can be skipped. This is quite negligible user impact. But, the bug is a bug that can be very simply fixed. Fix the wrong assignment to respect the exclusiveness of the address. The issue was discovered [1] by Sashiko. Link: https://lore.kernel.org/[email protected] Link: https://lore.kernel.org/[email protected] [1] Fixes: 50585192bc2e ("mm/damon/schemes: skip already charged targets and regions") Signed-off-by: SeongJae Park <[email protected]> Cc: <[email protected]> # 5.16.x Signed-off-by: Andrew Morton <[email protected]> (cherry picked from commit 5a2d162e22bf33eb89d53e802d0fc1ec422e19b6) Signed-off-by: SJ Park <[email protected]> --- mm/damon/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/damon/core.c b/mm/damon/core.c index d293200d824e9..4b434ebd37c53 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -803,7 +803,7 @@ static void damon_do_apply_schemes(struct damon_ctx *c, quota->charged_sz += sz; if (quota->esz && quota->charged_sz >= quota->esz) { quota->charge_target_from = t; - quota->charge_addr_from = r->ar.end + 1; + quota->charge_addr_from = r->ar.end; } } if (s->action != DAMOS_STAT) -- 2.47.3