]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
mm/damon/reclaim: skip damon_call() if ctx has not started
authorSJ Park <sj@kernel.org>
Mon, 3 Aug 2026 13:46:44 +0000 (06:46 -0700)
committerAndrew Morton <akpm@linux-foundation.org>
Wed, 5 Aug 2026 03:02:03 +0000 (20:02 -0700)
commitb9b6bad94c62cbccb9e0ad34635c49fc5f9c52cb
treee9de9a08ac081e6142489f2cd205439e360cb2ef
parent06befa61c427e74319781e6f35a364cfc32dbae8
mm/damon/reclaim: skip damon_call() if ctx has not started

Patch series "mm/damon/{reclaim,lru_sort}: fix commit_inputs infinite
hang".

Writing 'Y' to commit_inputs parameters of DAMON_RECLAIM and
DAMON_LRU_SORT before the modules were ever turned on causes infinite
hang.  Fix those.

The issue was discovered [1] by Sashiko.

This patch (of 2):

DAMON_RECLAIM calls damon_call() for commit_inputs parameter user input if
the DAMON context is initialized.  The context could be initialized, but
not yet successfully started.  In the case, damon_call() could
indefinitely hang.  Read the comment on damon_call() for more detail.  Fix
the problem by memorizing if the DAMON context has ever successfully
started, and skip damon_call() if it has not.

This issue can easily be reproduced by writing Y to commit_inputs on a
system that DAMON_RECLAIM was not turned on before.

Link: https://lore.kernel.org/20260803134646.16640-1-sj@kernel.org
Link: https://lore.kernel.org/20260803134646.16640-2-sj@kernel.org
Link: https://lore.kernel.org/20260802173021.762-1-sj@kernel.org
Fixes: de3c60e1c831 ("mm/damon: add synchronous commit for commit_inputs")
Signed-off-by: SJ Park <sj@kernel.org>
Cc: Liew Rui Yan <aethernet65535@gmail.com>
Cc: <stable@vger.kernel.org> # 7.2.x
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/damon/reclaim.c