]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mm/damon/core: make charge_addr_from aware of end-address exclusivity
authorSeongJae Park <sj@kernel.org>
Tue, 28 Apr 2026 04:29:40 +0000 (21:29 -0700)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 29 May 2026 04:04:41 +0000 (21:04 -0700)
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/20260428042942.118230-1-sj@kernel.org
Link: https://lore.kernel.org/20260428032324.115663-1-sj@kernel.org
Fixes: 50585192bc2e ("mm/damon/schemes: skip already charged targets and regions")
Signed-off-by: SeongJae Park <sj@kernel.org>
Cc: <stable@vger.kernel.org> # 5.16.x
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/damon/core.c

index 3dbbbfdeff719f85def0885abb3c18d59a9f603b..901ffdaefb7f063f464abbb48cef6dac3bf7a82c 100644 (file)
@@ -2106,7 +2106,7 @@ static void damos_apply_scheme(struct damon_ctx *c, struct damon_target *t,
                if (damos_quota_is_set(quota) &&
                                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)