mm-damon-core-set-damon_ctx-walk_control_obsolete-in-damon_new_ctx.patch removed from -mm tree
The quilt patch titled
Subject: mm/damon/core: set damon_ctx->walk_control_obsolete in damon_new_ctx()
has been removed from the -mm tree. Its filename was
mm-damon-core-set-damon_ctx-walk_control_obsolete-in-damon_new_ctx.patch
This patch was dropped because it was merged into the mm-stable branch of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
------------------------------------------------------
From: SJ Park <[email protected]>
Subject: mm/damon/core: set damon_ctx->walk_control_obsolete in damon_new_ctx()
Date: Thu, 17 Sep 2026 07:22:02 -0700
damos_walk() should be called for a damon_ctx context that has successfully started at least once. That's because damon_ctx->walk_control_obsolete is initialized when kdamond starts. If the rule is violated, an indefinite wait can happen. There is no existing violation of the rule.
damon_call() had a similar rule, and it turned out keeping the rule is not easy for damon_call()'s case. Hence, commit 8023b5f47e09 ("mm/damon/core: set ctx->call_controls_obsolete in damon_new_ctx()") added the initialization in damon_new_ctx() and removed the rule.
Keeping the rule for damos_walk() is relatively easier. But having slightly different rules for similar functions could be confusing. Sashiko, for example, repeatedly asked questions about this. Do the initialization of walk_control_obsolete in damon_new_ctx() for consistency.
---
mm/damon/core.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-)
mm/damon/core.c renamed from mm/damon/core.c~mm-damon-core-set-damon_ctx-walk_control_obsolete-in-damon_new_ctx +1 -4
@@ -939,6 +939,7 @@ struct damon_ctx *damon_new_ctx(void)INIT_LIST_HEAD (&ctx->schemes); ctx->call_controls_obsolete = true; + ctx->walk_control_obsolete = true;prandom_seed_state (&ctx->rnd_state,get_random_u64 ());return ctx;
@@ -2308,10 +2309,6 @@ canceled:* passed at least one &damos->apply_interval_us, kdamond marks the request as * completed so that damos_walk() can wakeup and return. * -* Note that this function should be called only after damon_start() with the -* @ctx has succeeded. Otherwise, this function could fall into an indefinite -* wait. -* * Return: 0 on success, negative error code otherwise. */ int damos_walk (struct damon_ctx *ctx,struct damos_walk_control *control)
_
Patches currently in -mm which might be from [email protected] are
mm-damon-core-introduce-damos_quota_goal-complement.patch mm-damon-core-add-complement-argument-to-damos_new_quota_goal.patch mm-damon-sysfs-schemes-support-quota-goal-complement-flag.patch mm-damon-tests-core-kunit-test-quota_goal-complement-commit.patch selftests-damon-sysfssh-test-quota-goal-complement-flag-file.patch docs-mm-damon-design-document-damos-quota-goal-complement-flag.patch docs-admin-guide-mm-damon-usage-update-for-quota-goal-complement-file.patch docs-abi-damon-update-for-quota-goal-metric-complement-sysfs-file.patch