* [RFC PATCH 00/11] mm/damon: advance DAMOS-based LRU sorting
@ 2025-06-28 16:51 SeongJae Park
2025-06-28 16:51 ` [RFC PATCH 03/11] Docs/mm/damon/design: document DAMOS_QUOTA_[IN]ACTIVE_MEM_BP SeongJae Park
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: SeongJae Park @ 2025-06-28 16:51 UTC (permalink / raw)
Cc: SeongJae Park, Andrew Morton, Jonathan Corbet, damon, kernel-team,
linux-doc, linux-kernel, linux-mm
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
^ permalink raw reply [flat|nested] 5+ messages in thread
* [RFC PATCH 03/11] Docs/mm/damon/design: document DAMOS_QUOTA_[IN]ACTIVE_MEM_BP
2025-06-28 16:51 [RFC PATCH 00/11] mm/damon: advance DAMOS-based LRU sorting SeongJae Park
@ 2025-06-28 16:51 ` SeongJae Park
2025-06-28 16:51 ` [RFC PATCH 07/11] Docs/admin-guide/mm/damon/lru_sort: document filter_young_pages SeongJae Park
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: SeongJae Park @ 2025-06-28 16:51 UTC (permalink / raw)
Cc: SeongJae Park, Andrew Morton, Jonathan Corbet, damon, kernel-team,
linux-doc, linux-kernel, linux-mm
Update design document for newly added DAMOS_QUOTA_[IN]ACTIVE_MEM_BP
metrics. Note that API document is automatically updated by kernel-doc
comment, and the usage document points to the design document which uses
keywords same to that for sysfs inputs. Hence updating only design
document is sufficient.
Signed-off-by: SeongJae Park <sj@kernel.org>
---
Documentation/mm/damon/design.rst | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/Documentation/mm/damon/design.rst b/Documentation/mm/damon/design.rst
index 2290ebefc648..ce8c389f0c68 100644
--- a/Documentation/mm/damon/design.rst
+++ b/Documentation/mm/damon/design.rst
@@ -570,6 +570,10 @@ tries to make ``current_value`` of ``target_metric`` be same to
set by users at the initial time. In other words, DAMOS does self-feedback.
- ``node_mem_used_bp``: Specific NUMA node's used memory ratio in bp (1/10,000).
- ``node_mem_free_bp``: Specific NUMA node's free memory ratio in bp (1/10,000).
+- ``active_mem_bp``: Active to active + inactive (LRU) memory size ratio in bp
+ (1/10,000).
+- ``inactive_mem_bp``: Inactive to active + inactive (LRU) memory size ratio in
+ bp (1/10,000).
``nid`` is optionally required for only ``node_mem_used_bp`` and
``node_mem_free_bp`` to point the specific NUMA node.
--
2.39.5
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [RFC PATCH 07/11] Docs/admin-guide/mm/damon/lru_sort: document filter_young_pages
2025-06-28 16:51 [RFC PATCH 00/11] mm/damon: advance DAMOS-based LRU sorting SeongJae Park
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 ` 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
3 siblings, 0 replies; 5+ messages in thread
From: SeongJae Park @ 2025-06-28 16:51 UTC (permalink / raw)
Cc: SeongJae Park, Andrew Morton, Jonathan Corbet, damon, kernel-team,
linux-doc, linux-kernel, linux-mm
Document the new DAMON_LRU_SORT parameter, filter_young_pages. It can
be used to use page level access re-check for the LRU sorting.
Signed-off-by: SeongJae Park <sj@kernel.org>
---
Documentation/admin-guide/mm/damon/lru_sort.rst | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/Documentation/admin-guide/mm/damon/lru_sort.rst b/Documentation/admin-guide/mm/damon/lru_sort.rst
index 7b0775d281b4..18fa73a59f62 100644
--- a/Documentation/admin-guide/mm/damon/lru_sort.rst
+++ b/Documentation/admin-guide/mm/damon/lru_sort.rst
@@ -79,6 +79,20 @@ of parametrs except ``enabled`` again. Once the re-reading is done, this
parameter is set as ``N``. If invalid parameters are found while the
re-reading, DAMON_LRU_SORT will be disabled.
+filter_young_pages
+------------------
+
+Filter [none-]young pages accordingly for LRU [de]prioritizations.
+
+If this is set, check page level access (youngness) once again before each
+LRU [de]prioritization operation. LRU prioritization operation is skipped
+if the page has not accessed since the last check (not young). LRU
+deprioritization operation is skipped if the page has accessed since the
+last check (young). The feature is enabled or disabled if this parameter is
+set as ``Y`` or ``N``, respectively.
+
+Disabled by default.
+
hot_thres_access_freq
---------------------
--
2.39.5
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [RFC PATCH 09/11] Docs/admin-guide/mm/damon/lru_sort: document active_mem_bp parameter
2025-06-28 16:51 [RFC PATCH 00/11] mm/damon: advance DAMOS-based LRU sorting SeongJae Park
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 ` SeongJae Park
2025-06-28 16:51 ` [RFC PATCH 11/11] Docs/admin-guide/mm/damon/lru_sort: document intervals autotuning SeongJae Park
3 siblings, 0 replies; 5+ messages in thread
From: SeongJae Park @ 2025-06-28 16:51 UTC (permalink / raw)
Cc: SeongJae Park, Andrew Morton, Jonathan Corbet, damon, kernel-team,
linux-doc, linux-kernel, linux-mm
Document a newly added DAMON_LRU_SORT parameter for doing auto-tuning
aiming an active to inactive memory size ratio.
Signed-off-by: SeongJae Park <sj@kernel.org>
---
Documentation/admin-guide/mm/damon/lru_sort.rst | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/Documentation/admin-guide/mm/damon/lru_sort.rst b/Documentation/admin-guide/mm/damon/lru_sort.rst
index 18fa73a59f62..ca4e071b3159 100644
--- a/Documentation/admin-guide/mm/damon/lru_sort.rst
+++ b/Documentation/admin-guide/mm/damon/lru_sort.rst
@@ -79,6 +79,18 @@ of parametrs except ``enabled`` again. Once the re-reading is done, this
parameter is set as ``N``. If invalid parameters are found while the
re-reading, DAMON_LRU_SORT will be disabled.
+active_mem_bp
+-------------
+
+Desired active to [in]active memory ratio in bp (1/10,000).
+
+While keeping the caps that set by other quotas, DAMON_LRU_SORT automatically
+increases and decreases the effective level of the quota aiming the LRU
+[de]prioritizations of the hot and cold memory resulting in this active to
+[in]active memory ratio. Value zero means disabling this auto-tuning feature.
+
+Disabled by default.
+
filter_young_pages
------------------
--
2.39.5
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [RFC PATCH 11/11] Docs/admin-guide/mm/damon/lru_sort: document intervals autotuning
2025-06-28 16:51 [RFC PATCH 00/11] mm/damon: advance DAMOS-based LRU sorting SeongJae Park
` (2 preceding siblings ...)
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 ` SeongJae Park
3 siblings, 0 replies; 5+ messages in thread
From: SeongJae Park @ 2025-06-28 16:51 UTC (permalink / raw)
Cc: SeongJae Park, Andrew Morton, Jonathan Corbet, damon, kernel-team,
linux-doc, linux-kernel, linux-mm
Document a newly added DAMON_LRU_SORT module parameter for using
monitoring intervals auto-tuning feature of DAMON.
Signed-off-by: SeongJae Park <sj@kernel.org>
---
Documentation/admin-guide/mm/damon/lru_sort.rst | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/Documentation/admin-guide/mm/damon/lru_sort.rst b/Documentation/admin-guide/mm/damon/lru_sort.rst
index ca4e071b3159..f9dfa8255dda 100644
--- a/Documentation/admin-guide/mm/damon/lru_sort.rst
+++ b/Documentation/admin-guide/mm/damon/lru_sort.rst
@@ -91,6 +91,17 @@ increases and decreases the effective level of the quota aiming the LRU
Disabled by default.
+Auto-tune monitoring intervals
+------------------------------
+
+If this parameter is set as ``Y``, DAMON_LRU_SORT automatically tune DAMON's
+sampling and aggregation intervals. The auto-tuning aims to capture meaningful
+amount of access events in each DAMON-snapshot, while keeping the sampling
+interval 5 milliseconds in minimu, and 10 seconds in maximum. Setting this as
+``Y`` disables the auto-tuning.
+
+Disabled by default.
+
filter_young_pages
------------------
--
2.39.5
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-06-28 16:51 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-28 16:51 [RFC PATCH 00/11] mm/damon: advance DAMOS-based LRU sorting SeongJae Park
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
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).