Re: [PATCH v2] mm/damon/tests/core-kunit: add test for unconditionally skipping the last region
From: Liew Rui Yan
Date: Sat Sep 26 2026 - 17:07:29 EST
On Fri, 25 Sep 2026 02:02:38 -0700 SJ Park <sj@xxxxxxxxxx> wrote:
> 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.
Okay, I will change the commit message in the next revision.
Commit b3723b596b54 ("mm/damon/core: fix unconditionally skip last
region") fixed a minor bug.
Add a KUnit test case to cover this behavior and prevent regressions
in the future.
[...]
Best regards,
Rui Yan