Re: [PATCH v2] mm/damon/tests/core-kunit: add test for unconditionally skipping the last region

From: SJ Park

Date: Fri Sep 25 2026 - 05:02:52 EST


On Fri, 25 Sep 2026 12:53:35 +0800 Liew Rui Yan <aethernet65535@xxxxxxxxx> wrote:

> Commit 50585192bc2e ("mm/damon/schemes: skip already charged targets and
> regions") introduced a minor issue that causes the last region to be
> skipped before it is processed.
>
> Example:
>
> 1. Target has 2 regions: R1 (0-100 bytes) and R2 (100-200 bytes).
> 2. Quota is configured to process only 100 bytes per window.
> 3. Window 1: Processes R1 (0-100). Quota is full. charge_{target,
> addr}_from is saved at (Target, 100).
> 4. Window 2: The loop reaches R2. Because R2 is
> damon_last_region(t), the old code unconditionally returns true,
> skipping R2 entirely and resetting the charge_{target,addr}_from.
>
> Result: R2 is permanently skipped even though it has never been
> processed.
>
> Add a test to prevent this regression in the future.

The bug is fixed by commit b3723b596b54 ("mm/damon/core: fix unconditionally
skip last region"), which is merged into the mainline for 7.3-rc5. Could you
update the commit message to mention the fix, rather than the original bug?
The fix commit already has a quite good description of the bug, so I don't
think we need to duplicate it here.

Other than that, looks good to me.


Thanks,
SJ

[...]