From: SeongJae Park <sj@kernel.org>
Cc: SeongJae Park <sj@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Jonathan Corbet <corbet@lwn.net>,
damon@lists.linux.dev, kernel-team@meta.com,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-mm@kvack.org
Subject: [RFC PATCH 00/11] mm/damon: advance DAMOS-based LRU sorting
Date: Sat, 28 Jun 2025 09:51:33 -0700 [thread overview]
Message-ID: <20250628165144.55528-1-sj@kernel.org> (raw)
DAMOS_LRU_[DE]PRIO actions were added to DAMOS for more access-aware LRU
lists sorting. For simple usage, a specialized kernel module, namely
DAMON_LRU_SORT, has also introduced. After the introduction of
DAMON_LRU_SORT, DAMON got a few important new features, including the
aim-based quota auto-tuning, young page filter, and monitoring intervals
auto-tuning. But DAMOS-based LRU sorting had no many updates. Now we
show some rooms to advance for DAMOS-based LRU sorting.
DAMON sysfs interface users can utilize all the features, but
DAMON_LRU_SORT is not updated for such modern features. Also, even in
case of DAMON sysfs interface usage, there is no good quota auto-tuning
goal metric for LRU sorting. Since it is a sort of balancing of active
and inactive pages, a metric that represents the size ratio between the
active and the inactive pages could be useful. Also, internal behaviors
of DAMOS_LRU_[DE]PRIO are not very symmetric.
Advance DAMOS-based LRU sorting by introducing a new DAMOS quota
auto-tuning target metric for [in]active memory size ratio, making
DAMOS_LRU_[DE]PRIO behavior more intuitive and symmetric. Also update
DAMON_LRU_SORT module to be able to fully utilize the modern features
including the [in]active memory size ratio, young page filter, and
monitoring intervals auto-tuning.
With these changes, for example, users can now ask DAMON to "find
hot/cold memory regions with auto-tuned monitoring intervals, do one
more page level access check for found hot/cold memory, and move pages
of those to active or inactive LRU lists accordingly, aiming 50:50
active to inactive memory ratio."
Plan for none-RFC Version
-------------------------
I'm planning to do more tests and add the results by the final version.
Patches Sequence
----------------
First four patches extend DAMOS quota auto-tuning to support [in]active
memory ratio target metric type. The patches introduce new metrics
(patch 1), DAMON sysfs support
(patch 2), and add the document (patch 3).
Following patch (patch 4) makes DAMOS_LRU_PRIO action to directly move
target pages to active LRU list, instead of marking accessed and
incrementally be moved to active lists.
Following seven patches (patches 5-11) updates DAMON_LRU_SORT to support
modern DAMON features. Patch 5 makes it to use not only access
frequency but also age at under-quota regions prioritization. Patch
6-11 add the support and document it for young page filtering,
active:inactive memory ratio based quota auto-tuning, and monitoring
intervals auto-tuning, respectively.
SeongJae Park (11):
mm/damon/core: introduce [in]active memory ratio damos quota goal
metric
mm/damon/sysfs-schemes: support DAMOS_QUOTA_[IN]ACTIVE_MEM_BP
Docs/mm/damon/design: document DAMOS_QUOTA_[IN]ACTIVE_MEM_BP
mm/damon/paddr: activate DAMOS_LRU_PRIO targets instead of marking
accessed
mm/damon/lru_sort: consider age for quota prioritization
mm/damon/lru_sort: support young page filters
Docs/admin-guide/mm/damon/lru_sort: document filter_young_pages
mm/damon/lru_sort: support active:inactive memory ratio based
auto-tuning
Docs/admin-guide/mm/damon/lru_sort: document active_mem_bp parameter
mm/damon/lru_sort: add monitoring intervals auto-tuning parameter
Docs/admin-guide/mm/damon/lru_sort: document intervals autotuning
.../admin-guide/mm/damon/lru_sort.rst | 37 ++++++
Documentation/mm/damon/design.rst | 4 +
include/linux/damon.h | 4 +
mm/damon/core.c | 22 ++++
mm/damon/lru_sort.c | 110 +++++++++++++++++-
mm/damon/paddr.c | 18 ++-
mm/damon/sysfs-schemes.c | 8 ++
7 files changed, 189 insertions(+), 14 deletions(-)
base-commit: cd5e995caa32062e89e340acb4acbcbe09ad709e
--
2.39.5
next reply other threads:[~2025-06-28 16:51 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-28 16:51 SeongJae Park [this message]
2025-06-28 16:51 ` [RFC PATCH 03/11] Docs/mm/damon/design: document DAMOS_QUOTA_[IN]ACTIVE_MEM_BP SeongJae Park
2025-06-28 16:51 ` [RFC PATCH 07/11] Docs/admin-guide/mm/damon/lru_sort: document filter_young_pages SeongJae Park
2025-06-28 16:51 ` [RFC PATCH 09/11] Docs/admin-guide/mm/damon/lru_sort: document active_mem_bp parameter SeongJae Park
2025-06-28 16:51 ` [RFC PATCH 11/11] Docs/admin-guide/mm/damon/lru_sort: document intervals autotuning 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=20250628165144.55528-1-sj@kernel.org \
--to=sj@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=corbet@lwn.net \
--cc=damon@lists.linux.dev \
--cc=kernel-team@meta.com \
--cc=linux-doc@vger.kernel.org \
--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).