Linux-mm Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: SJ Park <sj@kernel.org>
To: sashiko-bot@kernel.org
Cc: SJ Park <sj@kernel.org>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Usama Arif" <usamaarif642@gmail.com>,
	damon@lists.linux.dev, linux-mm@kvack.org
Subject: Re: [RFC PATCH 6.18.y 1/5] mm/damon/core: skip applying scheme if region split for quota fails
Date: Sat,  7 Nov 2026 13:06:08 -0800	[thread overview]
Message-ID: <20261107210610.270916-1-sj@kernel.org> (raw)
In-Reply-To: <sashiko-outbox-203262@kernel.org>

On Sat, 07 Nov 2026 20:18:33 +0000 sashiko-bot@kernel.org wrote:

> Thank you for your contribution! Sashiko AI review found 1 potential
> issue to consider:
> - [Low] mm/damon: damos_apply_scheme() inflates stats on region split
>   failure
> --
> 
> commit dd2b638af6fec217ed7123ab31fe119102f17f78
> Author: SJ Park <sj@kernel.org>
> 
> mm/damon/core: skip applying scheme if region split for quota fails
> 
> This commit updates damon_split_region_at() to return an error code on
> allocation failure and skips applying the DAMOS scheme in
> damos_apply_scheme() when splitting a region to fit within the size quota
> fails.
> 
> Link: https://lore.kernel.org/20260901131850.98037-1-sj@kernel.org
> Link: https://lore.kernel.org/20260901131850.98037-2-sj@kernel.org
> Link: https://lore.kernel.org/20260718171523.87547-1-sj@kernel.org [1]
> 
> > diff --git a/mm/damon/core.c b/mm/damon/core.c
> > index 8fa788b0d709c..4c536a9b958e4 100644
> > --- a/mm/damon/core.c
> > +++ b/mm/damon/core.c
> [ ... ]
> > @@ -2000,7 +2000,8 @@ static void damos_apply_scheme(struct damon_ctx *c, struct damon_target *t,
> >  					c->min_sz_region);
> >  			if (!sz)
> >  				goto update_stat;
> > -			damon_split_region_at(t, r, sz);
> > +			if (damon_split_region_at(t, r, sz))
> > +				goto update_stat;
> >  		}
> >  		if (damos_filter_out(c, t, r, s))
> >  			return;
> 
> [Severity: Low]
> Does jumping to update_stat when damon_split_region_at() fails inflate
> s->stat.nr_tried and s->stat.sz_tried?
> 
> At this point sz holds the non-zero aligned quota remainder, so
> damos_update_stat() increments s->stat.nr_tried and adds sz to
> s->stat.sz_tried even though damos_filter_out() and c->ops.apply_scheme()
> were skipped.  Because quota->charged_sz is not updated on this failure
> path, subsequent oversized matching regions in the walk will repeatedly add
> sz to s->stat.sz_tried while allocation keeps failing.

Good finding.  But too trivial to block this patch, in my opinion.

It happens under small memory allocation failure, which should be very rare or
even could be argued as too-small-to-fail.  The inflation would also be also
capped to quota size.  Hence it is trivial.

Also, same issue is in the mainline.  I will consider fixing it in mainline
first and add Cc:stable@ tag.  I might conclude not to fix this, since the
user impact is quite trivial.

> 
> -- 
> Sashiko AI review · https://sashiko.dev/#/patchset/20261107201001.206120-1-sj@kernel.org?part=1
> 


Thanks,
SJ


  reply	other threads:[~2026-11-07 21:06 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-07 20:09 [RFC PATCH 6.18.y 0/5] mm/damon: porting fixes that cherry-pick failed on 2026-11-07 SJ Park
2026-11-07 20:09 ` [RFC PATCH 6.18.y 1/5] mm/damon/core: skip applying scheme if region split for quota fails SJ Park
2026-11-07 20:18   ` sashiko-bot
2026-11-07 21:06     ` SJ Park [this message]
2026-11-07 20:09 ` [RFC PATCH 6.18.y 2/5] mm/damon/core: handle uninitialized damos_quota_goal->last_psi_total SJ Park
2026-11-07 20:09 ` [RFC PATCH 6.18.y 3/5] mm/damon/sysfs-schemes: read sysfs_filter->sz_range only once SJ Park
2026-11-09  0:34   ` Sasha Levin
2026-11-09  0:51     ` SJ Park
2026-11-09  0:58       ` SJ Park
2026-11-07 20:10 ` [RFC PATCH 6.18.y 4/5] mm/damon/core: remove unreachable damos charge_{target,addr}_from SJ Park
2026-11-07 20:10 ` [RFC PATCH 6.18.y 5/5] mm/damon/core: filter out damos address filter-split failed region SJ Park

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=20261107210610.270916-1-sj@kernel.org \
    --to=sj@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=damon@lists.linux.dev \
    --cc=linux-mm@kvack.org \
    --cc=sashiko-bot@kernel.org \
    --cc=usamaarif642@gmail.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox