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 2/8] mm/damon/core: do parameter testing commit on damon_start()
Date: Wed, 1 Jul 2026 07:48:04 -0700 [thread overview]
Message-ID: <20260701144815.113325-3-sj@kernel.org> (raw)
In-Reply-To: <20260701144815.113325-1-sj@kernel.org>
damon_start() and damon_commit_ctx() are two main DAMON core API
functions for setting whole DAMON parameters. While damon_commit_ctx()
does holistic parameters testing, damon_start() just believes the caller
validated the whole thing. Embed the holistic parameter check that is
already in damon_commit_ctx() into damon_start(). After this change,
the callers can safely call damon_start() without validating the
parameters.
Signed-off-by: SJ Park <sj@kernel.org>
---
mm/damon/core.c | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/mm/damon/core.c b/mm/damon/core.c
index 62c27002219cd..6b30cb6007e54 100644
--- a/mm/damon/core.c
+++ b/mm/damon/core.c
@@ -1865,6 +1865,8 @@ static int __damon_start(struct damon_ctx *ctx)
return err;
}
+static int __damon_commit_ctx(struct damon_ctx *dst, struct damon_ctx *src);
+
/**
* damon_start() - Starts the monitorings for a given group of contexts.
* @ctxs: an array of the pointers for contexts to start monitoring
@@ -1882,13 +1884,22 @@ static int __damon_start(struct damon_ctx *ctx)
*/
int damon_start(struct damon_ctx **ctxs, int nr_ctxs, bool exclusive)
{
+ struct damon_ctx *test_ctx;
int i;
int err = 0;
+ test_ctx = damon_new_ctx();
+ if (!test_ctx)
+ return -ENOMEM;
+
for (i = 0; i < nr_ctxs; i++) {
- if (!is_power_of_2(ctxs[i]->min_region_sz))
- return -EINVAL;
+ err = __damon_commit_ctx(test_ctx, ctxs[i]);
+ if (err) {
+ damon_destroy_ctx(test_ctx);
+ return err;
+ }
}
+ damon_destroy_ctx(test_ctx);
mutex_lock(&damon_lock);
if ((exclusive && nr_running_ctxs) ||
--
2.47.3
next prev parent 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 [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 ` SJ Park [this message]
2026-07-01 15:20 ` [RFC PATCH 2/8] mm/damon/core: do parameter testing commit on damon_start() 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-3-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 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.