From: SeongJae Park <sj@kernel.org>
Cc: SeongJae Park <sj@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
damon@lists.linux.dev, kernel-team@meta.com,
linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: [RFC PATCH 00/14] mm/damon: remove damon_callback
Date: Sun, 6 Jul 2025 13:00:04 -0700 [thread overview]
Message-ID: <20250706200018.42704-1-sj@kernel.org> (raw)
damon_callback was the only way for communicating with DAMON for
contexts running on its worker thread. The interface is flexible
and simple. But as DAMON evolves with more features, damon_callback
has become somewhat too old. With runtime parameters update, for example,
its lack of synchronization support was found to be inconvenient.
Arguably it is also not easy to use correctly since the callers should
understand when each callback is called, and implication of the return
values from the callbacks.
To replace it, damon_call() and damos_walk() are introduced. And those
replaced a few damon_callback use cases. Some use cases of
damon_callback such as parallel or repetitive DAMON internal data
reading and additional cleanups cannot simply be replaced by
damon_call() and damos_walk(), though.
To allow those replaceable, extend damon_call() for parallel and/or
repeated callbacks and modify the core/ops layers for additional
resources cleanup. With the updates, replace the remaining
damon_callback usages and finally remove damon_callback.
SeongJae Park (14):
mm/damon: accept parallel damon_call() requests
mm/damon/core: introduce repeat mode damon_call()
mm/damon/stat: use damon_call() repeat mode instead of damon_callback
mm/damon/reclaim: use damon_call() repeat mode instead of
damon_callback
mm/damon/lru_sort: use damon_call() repeat mode instead of
damon_callback
samples/damon/prcl: use damon_call() repeat mode instead of
damon_callback
samples/damon/wsse: use damon_call() repeat mode instead of
damon_callback
mm/damon/core: do not call ops.cleanup() when destroying targets
mm/damon/core: add cleanup_target() ops callback
mm/damon/vaddr: put pid in cleanup_target()
mm/damon/sysfs: remove damon_sysfs_destroy_targets()
mm/damon/core: destroy targets when kdamond_fn() finish
mm/damon/sysfs: remove damon_sysfs_before_terminate()
mm/damon/core: remove damon_callback
include/linux/damon.h | 44 ++++---------
mm/damon/core.c | 116 ++++++++++++++++++-----------------
mm/damon/lru_sort.c | 70 ++++++++++-----------
mm/damon/reclaim.c | 62 +++++++++----------
mm/damon/stat.c | 17 ++++-
mm/damon/sysfs.c | 41 +------------
mm/damon/tests/core-kunit.h | 4 +-
mm/damon/tests/vaddr-kunit.h | 2 +-
mm/damon/vaddr.c | 6 ++
samples/damon/prcl.c | 18 ++++--
samples/damon/wsse.c | 16 ++++-
11 files changed, 189 insertions(+), 207 deletions(-)
base-commit: d7932983411c60940e9b834ac554c33e0ca6f2ef
--
2.39.5
next reply other threads:[~2025-07-06 20:00 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-06 20:00 SeongJae Park [this message]
2025-07-06 20:00 ` [RFC PATCH 01/14] mm/damon: accept parallel damon_call() requests SeongJae Park
2025-07-06 20:00 ` [RFC PATCH 02/14] mm/damon/core: introduce repeat mode damon_call() SeongJae Park
2025-07-06 21:45 ` SeongJae Park
2025-07-06 20:00 ` [RFC PATCH 03/14] mm/damon/stat: use damon_call() repeat mode instead of damon_callback SeongJae Park
2025-07-06 20:00 ` [RFC PATCH 04/14] mm/damon/reclaim: " SeongJae Park
2025-07-06 20:00 ` [RFC PATCH 05/14] mm/damon/lru_sort: " SeongJae Park
2025-07-06 20:00 ` [RFC PATCH 06/14] samples/damon/prcl: " SeongJae Park
2025-07-06 20:00 ` [RFC PATCH 07/14] samples/damon/wsse: " SeongJae Park
2025-07-06 20:00 ` [RFC PATCH 08/14] mm/damon/core: do not call ops.cleanup() when destroying targets SeongJae Park
2025-07-06 20:00 ` [RFC PATCH 09/14] mm/damon/core: add cleanup_target() ops callback SeongJae Park
2025-07-06 20:00 ` [RFC PATCH 10/14] mm/damon/vaddr: put pid in cleanup_target() SeongJae Park
2025-07-06 21:48 ` SeongJae Park
2025-07-06 20:00 ` [RFC PATCH 11/14] mm/damon/sysfs: remove damon_sysfs_destroy_targets() SeongJae Park
2025-07-06 20:00 ` [RFC PATCH 12/14] mm/damon/core: destroy targets when kdamond_fn() finish SeongJae Park
2025-07-06 20:00 ` [RFC PATCH 13/14] mm/damon/sysfs: remove damon_sysfs_before_terminate() SeongJae Park
2025-07-06 20:00 ` [RFC PATCH 14/14] mm/damon/core: remove damon_callback SeongJae 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=20250706200018.42704-1-sj@kernel.org \
--to=sj@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=damon@lists.linux.dev \
--cc=kernel-team@meta.com \
--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;
as well as URLs for NNTP newsgroup(s).