From: Liew Rui Yan <aethernet65535@gmail.com>
To: aethernet65535@gmail.com
Cc: akpm@linux-foundation.org, damon@lists.linux.dev,
linux-kernel@vger.kernel.org, linux-mm@kvack.org, sj@kernel.org,
stable@vger.kernel.org
Subject: [PATCH v2] mm/damon/core: fix false positive in
Date: Wed, 2 Sep 2026 17:02:17 +0800 [thread overview]
Message-ID: <20260902090217.29968-1-aethernet65535@gmail.com> (raw)
In-Reply-To: <20260902081825.18931-1-aethernet65535@gmail.com>
On Wed, 02 Sep 2026 16:18:25 +0800 Liew Rui Yan <aethernet65535@gmail.com> wrote:
> When setting goal_tuner to 'temporal', if the goal is achieved,
> quota->esz_bp will be set to zero. In this case, damos_quota_is_full()
> will always return true, even if no regions have been tried to apply at
> all. This causes qt_exceeds to increase unexpectedly.
>
> Fix it by:
>
> - Returning false in damos_quota_is_full() when quota->charged_sz is
> zero.
> - Adding an early exit in damon_do_apply_schemes() for schemes with zero
> esz.
>
> Fixes: c7ec7d5f6b3d ("mm/damon/core: handle <min_region_sz remaining quota as empty")
> Cc: <stable@vger.kernel.org> # v7.2.x
> Signed-off-by: Liew Rui Yan <aethernet65535@gmail.com>
> ---
>
> Changes from v1:
> - v1: https://lore.kernel.org/damon/20260901105925.106186-1-aethernet65535@gmail.com
> - Changed the check in damos_quota_is_full() from '!quota->esz' to
> '!quota->charged_sz', because the former is an upper bound, while the
> latter represents the actual quota usage.
> - Added an early exit in damon_do_apply_schemes() to prevent a scheme
> with zero esz from being evaluated by damos_quota_is_full().
> - Changed patch title, original title: always return false when esz is
> zero
>
> ---
> mm/damon/core.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/mm/damon/core.c b/mm/damon/core.c
> index 8e3ded1a2cf6..de78ad56c8b3 100644
> --- a/mm/damon/core.c
> +++ b/mm/damon/core.c
> @@ -2560,6 +2560,8 @@ static bool damos_quota_is_full(struct damos_quota *quota,
> {
> if (!damos_quota_is_set(quota))
> return false;
> + if (!quota->charged_sz)
> + return false;
> if (quota->charged_sz >= quota->esz)
> return true;
> /*
> @@ -2666,6 +2668,9 @@ static void damon_do_apply_schemes(struct damon_ctx *c,
> if (!s->wmarks.activated)
> continue;
>
> + if (!quota->esz)
> + continue;
> +
> /* Check the quota */
> if (damos_quota_is_full(quota, c->min_region_sz))
> continue;
> --
> 2.55.0
>
>
Please ignore this patch. The title was truncated, so I've reposted it.
If Sashiko provides a report in this thread that differs from the
reposted version, I'll forward it as well.
Best regards,
Rui Yan
prev parent reply other threads:[~2026-09-02 9:02 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-02 8:18 [PATCH v2] mm/damon/core: fix false positive in Liew Rui Yan
2026-09-02 8:29 ` sashiko-bot
2026-09-02 9:02 ` Liew Rui Yan [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260902090217.29968-1-aethernet65535@gmail.com \
--to=aethernet65535@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=damon@lists.linux.dev \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=sj@kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.