From: SJ Park <sj@kernel.org>
Cc: SJ Park <sj@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
damon@lists.linux.dev, linux-kernel@vger.kernel.org,
linux-mm@kvack.org
Subject: [RFC PATCH 0/8] mm/damon: validate all parameters in the core
Date: Wed, 1 Jul 2026 07:48:02 -0700 [thread overview]
Message-ID: <20260701144815.113325-1-sj@kernel.org> (raw)
DAMON has a number of parameters. Some of the parameters are validated
by DAMON, while some are validated by DAMON API callers. Each caller
has their own set of parameters that are exposed to users. Hence each
caller has their own ways to do the validation. There is no clear lines
for the responsibilities. It is confusing and easy to make mistakes at
validations. Actually we found a few bugs in the class.
Define DAMON core as the place to do all the validations and implement
those. damon_set_regions(), damon_start() and damon_commit_ctx() are
the three main DAMON core API functions for setup of DAMON parameters.
Make the three functions to do safe and holistic parameter checks. The
first one is already providing the validation, so changes are only for
the last two functions.
This might add unnecessary validations for some use cases. The overhead
should be negligible as parameters update is expected to only rarely
happen. It reduces the number of places to check and fix for bugs of
the class from all callers to the single component. The maintenance
efficiency gain is obvious.
Further cleanup documents and caller code. Make the lines of validation
duties clearer. Remove validations that are no more needed owing to the
core validations.
Patches Sequence
================
Patch 1 implements the core holistic parameters validation for
damon_commit_ctx(). Patch 2 extends the validation to damon_start().
Patch 3 removes the duplicated holistic parameters validation in DAMON
sysfs interface, which is now embedded into the core layer. Patches 4
and 5 remove duplicated min_region_sz validation in DAMON modules.
Patches 6 updates kernel doc to clarify damon_set_regions() is doing the
range validation. Patches 7 and 8 remove monitoring target range
validations that doesn't necessary thanks to the validation in
damon_set_regions().
Note that the patch for providing the validation from
damon_set_regions() is separately posted as a hotfix [1] but not yet
picked into mm.git as of this writing.
[1] https://lore.kernel.org/20260630035221.146458-1-sj@kernel.org
SJ Park (8):
mm/damon/core: safely validate src on damon_commit_ctx()
mm/damon/core: do parameter testing commit on damon_start()
mm/damon/sysfs: remove duplicated commit input validity check
mm/damon/reclaim: remove duplicated min_region_sz power of 2 check
mm/damon/lru_sort: remove duplicated min_region_sz power_of_2() check
mm/damon: document region size validation in damon_set_regions()
mm/damon/core: remove start, end check in
damon_set_region_system_rams()
mm/damon/sysfs: remove region size validation
include/linux/damon.h | 3 +-
mm/damon/core.c | 79 ++++++++++++++++++++++++++++++++-----------
mm/damon/lru_sort.c | 5 ---
mm/damon/reclaim.c | 5 ---
mm/damon/sysfs.c | 35 +------------------
5 files changed, 63 insertions(+), 64 deletions(-)
base-commit: fe39036ef6a25f1ce6674c04188fd67fc53402e7
--
2.47.3
next reply other threads:[~2026-07-01 14:48 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-01 14:48 SJ Park [this message]
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
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=20260701144815.113325-1-sj@kernel.org \
--to=sj@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=damon@lists.linux.dev \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox