From: SJ Park <sj@kernel.org>
To: sashiko-bot@kernel.org
Cc: SJ Park <sj@kernel.org>, damon@lists.linux.dev
Subject: Re: [RFC PATCH 6/8] mm/damon: document region size validation in damon_set_regions()
Date: Wed, 1 Jul 2026 17:16:50 -0700 [thread overview]
Message-ID: <20260702001650.86841-1-sj@kernel.org> (raw)
In-Reply-To: <20260701160419.4A40B1F000E9@smtp.kernel.org>
On Wed, 01 Jul 2026 16:04:18 +0000 sashiko-bot@kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
> - [High] The documentation incorrectly claims `damon_set_regions()` validates region sizes, which led to the removal of input validation in callers, resulting in a kernel OOM panic when negative-sized regions are processed.
> --
>
> commit d4cdfb1871ad152ec6d79d41fca7f1497b7467a0
> Author: SJ Park <sj@kernel.org>
>
> mm/damon: document region size validation in damon_set_regions()
>
> This commit updates the documentation for the damon_region struct. It
> clarifies that callers can pass any values for region addresses because
> damon_set_regions() validates that regions have a positive size.
>
> > diff --git a/include/linux/damon.h b/include/linux/damon.h
> > --- a/include/linux/damon.h
> > +++ b/include/linux/damon.h
> > @@ -51,7 +51,8 @@ struct damon_size_range {
> > * @list: List head for siblings.
> > * @age: Age of this region.
> > *
> > - * For any use case, @ar should be non-zero positive size.
> > + * For any use case, @ar should be non-zero positive size. damon_set_regions()
> > + * does the validation.
>
> [Severity: High]
> Does this documentation accurately reflect the implementation?
>
> Looking at damon_set_regions() in mm/damon/core.c, it lacks checks for
> start >= end before passing boundaries to damon_new_region():
As I noted on the cover letter, the check is not yet merged into mm.git.
>
> mm/damon/core.c:damon_set_regions() {
> ...
> r = damon_new_region(
> ALIGN_DOWN(ranges[i].start,
> min_region_sz),
> ALIGN(ranges[i].end, min_region_sz));
> ...
> }
>
> If a region is created with start >= end, would damon_sz_region() underflow
> to ULONG_MAX?
>
> This enormous size could trigger an infinite memory allocation loop in
> damon_apply_min_nr_regions() which repeatedly calls damon_split_region_at():
>
> mm/damon/core.c:damon_apply_min_nr_regions() {
> ...
> while (damon_sz_region(r) > max_region_sz) {
> damon_split_region_at(t, r, max_region_sz);
> r = damon_next_region(r);
> }
> ...
> }
>
> Since a subsequent patch in the series (mm/damon/sysfs: remove region size
> validation) relies on this guarantee to remove the validation from sysfs,
> could a user writing a region with start >= end to the DAMON sysfs interface
> trigger an Out-of-Memory kernel panic?
So no issue.
Thanks,
SJ
[...]
next prev parent reply other threads:[~2026-07-02 0:16 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-01 14:48 [RFC PATCH 0/8] mm/damon: validate all parameters in the core SJ Park
2026-07-01 14:48 ` [RFC PATCH 1/8] mm/damon/core: safely validate src on damon_commit_ctx() SJ Park
2026-07-01 15:01 ` sashiko-bot
2026-07-01 15:06 ` SJ Park
2026-07-01 14:48 ` [RFC PATCH 2/8] mm/damon/core: do parameter testing commit on damon_start() SJ Park
2026-07-01 15:20 ` sashiko-bot
2026-07-02 0:05 ` SJ Park
2026-07-01 14:48 ` [RFC PATCH 3/8] mm/damon/sysfs: remove duplicated commit input validity check SJ Park
2026-07-01 15:29 ` sashiko-bot
2026-07-02 0:09 ` SJ Park
2026-07-01 14:48 ` [RFC PATCH 4/8] mm/damon/reclaim: remove duplicated min_region_sz power of 2 check SJ Park
2026-07-01 15:42 ` sashiko-bot
2026-07-02 0:10 ` SJ Park
2026-07-01 14:48 ` [RFC PATCH 5/8] mm/damon/lru_sort: remove duplicated min_region_sz power_of_2() check SJ Park
2026-07-01 15:56 ` sashiko-bot
2026-07-02 0:15 ` SJ Park
2026-07-01 14:48 ` [RFC PATCH 6/8] mm/damon: document region size validation in damon_set_regions() SJ Park
2026-07-01 16:04 ` sashiko-bot
2026-07-02 0:16 ` SJ Park [this message]
2026-07-01 14:48 ` [RFC PATCH 7/8] mm/damon/core: remove start, end check in damon_set_region_system_rams() SJ Park
2026-07-01 16:22 ` sashiko-bot
2026-07-02 0:18 ` SJ Park
2026-07-01 14:48 ` [RFC PATCH 8/8] mm/damon/sysfs: remove region size validation SJ Park
2026-07-01 16:34 ` sashiko-bot
2026-07-02 0:19 ` 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=20260702001650.86841-1-sj@kernel.org \
--to=sj@kernel.org \
--cc=damon@lists.linux.dev \
--cc=sashiko-bot@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.