linux-doc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/7] mm/damon: add a DAMOS filter type for page granularity access recheck
@ 2024-04-26 19:52 SeongJae Park
  2024-04-26 19:52 ` [PATCH 5/7] Docs/mm/damon/design: document 'young page' type DAMOS filter SeongJae Park
  2024-04-26 19:52 ` [PATCH 6/7] Docs/admin-guide/mm/damon/usage: update for young page " SeongJae Park
  0 siblings, 2 replies; 3+ messages in thread
From: SeongJae Park @ 2024-04-26 19:52 UTC (permalink / raw)
  To: Andrew Morton
  Cc: SeongJae Park, Jonathan Corbet, damon, linux-mm, linux-doc,
	linux-kernel

Changes from RFC v2
(https://lore.kernel.org/r/20240311204545.47097-1-sj@kernel.org)
- Add documentation
- Add Tested-by: Honggyu Kim <honggyu.kim@sk.com>
- Wordsmith commit messages

Changes from RFC v1
(https://lore.kernel.org/r/20240307030013.47041-1-sj@kernel.org)
- Mark the folio as old if it was young
- Rename __damon_pa_young() to damon_folio_young_one()

DAMON provides its best-effort accuracy-overhead tradeoff under the
user-defined ranges of acceptable level of the monitoring accuracy and
overhead.  A recent discussion for tiered memory management support from
DAMON[1] concluded that finding memory regions of specific access
pattern with low overhead despite of low accuracy via DAMON first, and
then double checking the access of the region again in a finer (e.g.,
page) granularity could be a useful strategy for some DAMOS schemes.

Add a new type of DAMOS filter, namely 'young' for such a case.  It
checks each page of DAMOS target region is accessed since the last
check, and filters it out or in if 'matching' parameter is 'true' or
'false', respectively.

Because this is a filter type that applied in page granularity, the
support depends on DAMON operations set, similar to 'anon' and 'memcg'
DAMOS filter types.  Implement the support on the DAMON operations set
for the physical address space, 'paddr', since one of the expected
usages[1] is based on the physical address space.

[1] https://lore.kernel.org/r/20240227235121.153277-1-sj@kernel.org

SeongJae Park (7):
  mm/damon/paddr: implement damon_folio_young()
  mm/damon/paddr: implement damon_folio_mkold()
  mm/damon: add DAMOS filter type YOUNG
  mm/damon/paddr: implement DAMOS filter type YOUNG
  Docs/mm/damon/design: document 'young page' type DAMOS filter
  Docs/admin-guide/mm/damon/usage: update for young page type DAMOS
    filter
  Docs/ABI/damon: update for 'youg page' type DAMOS filter

 .../ABI/testing/sysfs-kernel-mm-damon         |  6 +-
 Documentation/admin-guide/mm/damon/usage.rst  | 26 ++++----
 Documentation/mm/damon/design.rst             | 20 +++---
 include/linux/damon.h                         |  2 +
 mm/damon/paddr.c                              | 64 ++++++++++++-------
 mm/damon/sysfs-schemes.c                      |  1 +
 6 files changed, 70 insertions(+), 49 deletions(-)


base-commit: 4b4dd809460911d6c406bb45d2c627a9e5734468
-- 
2.39.2


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH 5/7] Docs/mm/damon/design: document 'young page' type DAMOS filter
  2024-04-26 19:52 [PATCH 0/7] mm/damon: add a DAMOS filter type for page granularity access recheck SeongJae Park
@ 2024-04-26 19:52 ` SeongJae Park
  2024-04-26 19:52 ` [PATCH 6/7] Docs/admin-guide/mm/damon/usage: update for young page " SeongJae Park
  1 sibling, 0 replies; 3+ messages in thread
From: SeongJae Park @ 2024-04-26 19:52 UTC (permalink / raw)
  To: Andrew Morton
  Cc: SeongJae Park, Jonathan Corbet, damon, linux-mm, linux-doc,
	linux-kernel

Update DAMON design document for the newly added DAMOS filter type,
'young page'.

Signed-off-by: SeongJae Park <sj@kernel.org>
---
 Documentation/mm/damon/design.rst | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/Documentation/mm/damon/design.rst b/Documentation/mm/damon/design.rst
index 5620aab9b3850..f2baf617184d0 100644
--- a/Documentation/mm/damon/design.rst
+++ b/Documentation/mm/damon/design.rst
@@ -461,15 +461,17 @@ number of filters for each scheme.  Each filter specifies the type of target
 memory, and whether it should exclude the memory of the type (filter-out), or
 all except the memory of the type (filter-in).
 
-Currently, anonymous page, memory cgroup, address range, and DAMON monitoring
-target type filters are supported by the feature.  Some filter target types
-require additional arguments.  The memory cgroup filter type asks users to
-specify the file path of the memory cgroup for the filter.  The address range
-type asks the start and end addresses of the range.  The DAMON monitoring
-target type asks the index of the target from the context's monitoring targets
-list.  Hence, users can apply specific schemes to only anonymous pages,
-non-anonymous pages, pages of specific cgroups, all pages excluding those of
-specific cgroups, pages in specific address range, pages in specific DAMON
+Currently, anonymous page, memory cgroup, young page, address range, and DAMON
+monitoring target type filters are supported by the feature.  Some filter
+target types require additional arguments.  The memory cgroup filter type asks
+users to specify the file path of the memory cgroup for the filter.  The
+address range type asks the start and end addresses of the range.  The DAMON
+monitoring target type asks the index of the target from the context's
+monitoring targets list.  Hence, users can apply specific schemes to only
+anonymous pages, non-anonymous pages, pages of specific cgroups, all pages
+excluding those of specific cgroups, pages that not accessed after the last
+access check from the scheme, pages that accessed after the last access check
+from the scheme, pages in specific address range, pages in specific DAMON
 monitoring targets, and any combination of those.
 
 To handle filters efficiently, the address range and DAMON monitoring target
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 6/7] Docs/admin-guide/mm/damon/usage: update for young page type DAMOS filter
  2024-04-26 19:52 [PATCH 0/7] mm/damon: add a DAMOS filter type for page granularity access recheck SeongJae Park
  2024-04-26 19:52 ` [PATCH 5/7] Docs/mm/damon/design: document 'young page' type DAMOS filter SeongJae Park
@ 2024-04-26 19:52 ` SeongJae Park
  1 sibling, 0 replies; 3+ messages in thread
From: SeongJae Park @ 2024-04-26 19:52 UTC (permalink / raw)
  To: Andrew Morton
  Cc: SeongJae Park, Jonathan Corbet, damon, linux-mm, linux-doc,
	linux-kernel

Update DAMON usage document for the newly added DAMOS filter type,
'young page'.

Signed-off-by: SeongJae Park <sj@kernel.org>
---
 Documentation/admin-guide/mm/damon/usage.rst | 26 ++++++++++----------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/Documentation/admin-guide/mm/damon/usage.rst b/Documentation/admin-guide/mm/damon/usage.rst
index 6fce035fdbf5c..69bc8fabf3781 100644
--- a/Documentation/admin-guide/mm/damon/usage.rst
+++ b/Documentation/admin-guide/mm/damon/usage.rst
@@ -410,19 +410,19 @@ in the numeric order.
 
 Each filter directory contains six files, namely ``type``, ``matcing``,
 ``memcg_path``, ``addr_start``, ``addr_end``, and ``target_idx``.  To ``type``
-file, you can write one of four special keywords: ``anon`` for anonymous pages,
-``memcg`` for specific memory cgroup, ``addr`` for specific address range (an
-open-ended interval), or ``target`` for specific DAMON monitoring target
-filtering.  In case of the memory cgroup filtering, you can specify the memory
-cgroup of the interest by writing the path of the memory cgroup from the
-cgroups mount point to ``memcg_path`` file.  In case of the address range
-filtering, you can specify the start and end address of the range to
-``addr_start`` and ``addr_end`` files, respectively.  For the DAMON monitoring
-target filtering, you can specify the index of the target between the list of
-the DAMON context's monitoring targets list to ``target_idx`` file.  You can
-write ``Y`` or ``N`` to ``matching`` file to filter out pages that does or does
-not match to the type, respectively.  Then, the scheme's action will not be
-applied to the pages that specified to be filtered out.
+file, you can write one of five special keywords: ``anon`` for anonymous pages,
+``memcg`` for specific memory cgroup, ``young`` for young pages, ``addr`` for
+specific address range (an open-ended interval), or ``target`` for specific
+DAMON monitoring target filtering.  In case of the memory cgroup filtering, you
+can specify the memory cgroup of the interest by writing the path of the memory
+cgroup from the cgroups mount point to ``memcg_path`` file.  In case of the
+address range filtering, you can specify the start and end address of the range
+to ``addr_start`` and ``addr_end`` files, respectively.  For the DAMON
+monitoring target filtering, you can specify the index of the target between
+the list of the DAMON context's monitoring targets list to ``target_idx`` file.
+You can write ``Y`` or ``N`` to ``matching`` file to filter out pages that does
+or does not match to the type, respectively.  Then, the scheme's action will
+not be applied to the pages that specified to be filtered out.
 
 For example, below restricts a DAMOS action to be applied to only non-anonymous
 pages of all memory cgroups except ``/having_care_already``.::
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-04-26 19:53 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-26 19:52 [PATCH 0/7] mm/damon: add a DAMOS filter type for page granularity access recheck SeongJae Park
2024-04-26 19:52 ` [PATCH 5/7] Docs/mm/damon/design: document 'young page' type DAMOS filter SeongJae Park
2024-04-26 19:52 ` [PATCH 6/7] Docs/admin-guide/mm/damon/usage: update for young page " 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).