[PATCH] mm/damon/core: add short circuit for esz<min_region_sz in damos_adjust_quota()

Liew Rui Yan posted 1 patch 1 week, 5 days ago
mm/damon/core.c | 2 ++
1 file changed, 2 insertions(+)
[PATCH] mm/damon/core: add short circuit for esz<min_region_sz in damos_adjust_quota()
Posted by Liew Rui Yan 1 week, 5 days ago
After damos_set_effective_quota(), the effective size quota may be lower
than min_region_sz (e.g., when the temporal quota goal is
[over-]achieved).

In this situation, damos_adjust_quota() will still calculates
quota->min_score.  However, this min_score will not be used in this
window, because in damon_do_apply_schemes(), damos_quota_is_full() will
always returns true, preventing the scheme from being applied to any
region.

Therefore, add a short circuit for 'esz < min_region_sz' schemes to
early return from damos_adjust_quota() before calculating min_score.

Signed-off-by: Liew Rui Yan <aethernet65535@gmail.com>
---

Changes from RFC v1:
- RFC v1: https://lore.kernel.org/damon/20260912124406.96535-1-aethernet65535@gmail.com
- Make patch more complete by covering 'esz < min_region_sz' instead of
  covering "temporal quota goal is [over-]achieved" only.

---
 mm/damon/core.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/mm/damon/core.c b/mm/damon/core.c
index ce8c6f99106e..15758525765e 100644
--- a/mm/damon/core.c
+++ b/mm/damon/core.c
@@ -3318,6 +3318,8 @@ static void damos_adjust_quota(struct damon_ctx *c, struct damos *s)
 			damos_trace_esz(c, s, quota);
 	}
 
+	if (damos_quota_is_full(quota, c->min_region_sz))
+		return;
 	if (!c->ops.get_scheme_score)
 		return;
 
-- 
2.55.0
Re: [PATCH] mm/damon/core: add short circuit for esz<min_region_sz in damos_adjust_quota()
Posted by SJ Park 1 week, 4 days ago
Hi Liew,


From the next time, please complete discussions on the previous version before
posting a new version.  For example, in this case, you could replied to my last
reply to the previous version of this patch saying you will accept my suggested
changes and wait a reasonable time to decide there is no other opinions.

I think the subject is not very clear.  How about something like, "skip quota
score setup when quota is full"?

On Sun, 13 Sep 2026 19:01:38 +0800 Liew Rui Yan <aethernet65535@gmail.com> wrote:

> After damos_set_effective_quota(), the effective size quota may be lower
> than min_region_sz (e.g., when the temporal quota goal is [over-]achieved).

This sounds unnecessarily specific and doesn't cover all the case.  What about

"In damos_adjust_quota(), the quota could already be full."

> 
> In this situation, damos_adjust_quota() will still calculates
> quota->min_score.  However, this min_score will not be used in this
> window, because in damon_do_apply_schemes(), damos_quota_is_full() will
> always returns true, preventing the scheme from being applied to any
> region.
> 
> Therefore, add a short circuit for 'esz < min_region_sz' schemes to
> early return from damos_adjust_quota() before calculating min_score.
> 
> Signed-off-by: Liew Rui Yan <aethernet65535@gmail.com>

Assuming you agree to above suggestions,

Reviewed-by: SJ Park <sj@kernel.org>

With the above assumption, I modified this patch with the suggestions and
applied to damon/next [1] tree.  I will repost it for mm.git merge after a
week.  So, if you are ok with the plan, no action from your side is needed.

Please let me know if you have different opinions.

[1] https://origin.kernel.org/doc/html/latest/mm/damon/maintainer-profile.html#scm-trees


Thanks,
SJ

[...]
Re: [PATCH] mm/damon/core: add short circuit for esz<min_region_sz in damos_adjust_quota()
Posted by Liew Rui Yan 1 week, 3 days ago
On Sun, 13 Sep 2026 09:20:45 -0700 SJ Park <sj@kernel.org> wrote:

> Hi Liew,
> 
> 
> From the next time, please complete discussions on the previous version before
> posting a new version.  For example, in this case, you could replied to my last
> reply to the previous version of this patch saying you will accept my suggested
> changes and wait a reasonable time to decide there is no other opinions.

Thank you for your guidance.  From the next time, I will reply and say
if I will accept your suggestions.

> 
> I think the subject is not very clear.  How about something like, "skip quota
> score setup when quota is full"?

Sure, it is shorter and more understandable.

> 
> On Sun, 13 Sep 2026 19:01:38 +0800 Liew Rui Yan <aethernet65535@gmail.com> wrote:
> 
> > After damos_set_effective_quota(), the effective size quota may be lower
> > than min_region_sz (e.g., when the temporal quota goal is [over-]achieved).
> 
> This sounds unnecessarily specific and doesn't cover all the case.  What about
> 
> "In damos_adjust_quota(), the quota could already be full."

Agree, that makes sense.  Since users who is using temporal quota
auto-tuning should know what happens when goal is achieved.

> 
> > 
> > In this situation, damos_adjust_quota() will still calculates
> > quota->min_score.  However, this min_score will not be used in this
> > window, because in damon_do_apply_schemes(), damos_quota_is_full() will
> > always returns true, preventing the scheme from being applied to any
> > region.
> > 
> > Therefore, add a short circuit for 'esz < min_region_sz' schemes to
> > early return from damos_adjust_quota() before calculating min_score.
> > 
> > Signed-off-by: Liew Rui Yan <aethernet65535@gmail.com>
> 
> Assuming you agree to above suggestions,

Yes, I agree those all suggestions.

> 
> Reviewed-by: SJ Park <sj@kernel.org>
> 
> With the above assumption, I modified this patch with the suggestions and
> applied to damon/next [1] tree.  I will repost it for mm.git merge after a
> week.  So, if you are ok with the plan, no action from your side is needed.
> 
> Please let me know if you have different opinions.
> 
> [1] https://origin.kernel.org/doc/html/latest/mm/damon/maintainer-profile.html#scm-trees

Best regards,
Rui Yan