Docs/admin-guide/mm/damon/usage: document DAMOS filters of sysfs
Document about the newly added files for DAMOS filters on the DAMON usage document. Link: https://lkml.kernel.org/r/20221205230830.144349-11-sj@kernel.org Signed-off-by: SeongJae Park <sj@kernel.org> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Shuah Khan <shuah@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
553b014244
commit
9b7f9322a5
@ -87,6 +87,8 @@ comma (","). ::
|
|||||||
│ │ │ │ │ │ │ quotas/ms,bytes,reset_interval_ms
|
│ │ │ │ │ │ │ quotas/ms,bytes,reset_interval_ms
|
||||||
│ │ │ │ │ │ │ │ weights/sz_permil,nr_accesses_permil,age_permil
|
│ │ │ │ │ │ │ │ weights/sz_permil,nr_accesses_permil,age_permil
|
||||||
│ │ │ │ │ │ │ watermarks/metric,interval_us,high,mid,low
|
│ │ │ │ │ │ │ watermarks/metric,interval_us,high,mid,low
|
||||||
|
│ │ │ │ │ │ │ filters/nr_filters
|
||||||
|
│ │ │ │ │ │ │ │ 0/type,matching,memcg_id
|
||||||
│ │ │ │ │ │ │ stats/nr_tried,sz_tried,nr_applied,sz_applied,qt_exceeds
|
│ │ │ │ │ │ │ stats/nr_tried,sz_tried,nr_applied,sz_applied,qt_exceeds
|
||||||
│ │ │ │ │ │ │ tried_regions/
|
│ │ │ │ │ │ │ tried_regions/
|
||||||
│ │ │ │ │ │ │ │ 0/start,end,nr_accesses,age
|
│ │ │ │ │ │ │ │ 0/start,end,nr_accesses,age
|
||||||
@ -151,6 +153,8 @@ number (``N``) to the file creates the number of child directories named as
|
|||||||
moment, only one context per kdamond is supported, so only ``0`` or ``1`` can
|
moment, only one context per kdamond is supported, so only ``0`` or ``1`` can
|
||||||
be written to the file.
|
be written to the file.
|
||||||
|
|
||||||
|
.. _sysfs_contexts:
|
||||||
|
|
||||||
contexts/<N>/
|
contexts/<N>/
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
@ -268,8 +272,8 @@ schemes/<N>/
|
|||||||
------------
|
------------
|
||||||
|
|
||||||
In each scheme directory, five directories (``access_pattern``, ``quotas``,
|
In each scheme directory, five directories (``access_pattern``, ``quotas``,
|
||||||
``watermarks``, ``stats``, and ``tried_regions``) and one file (``action``)
|
``watermarks``, ``filters``, ``stats``, and ``tried_regions``) and one file
|
||||||
exist.
|
(``action``) exist.
|
||||||
|
|
||||||
The ``action`` file is for setting and getting what action you want to apply to
|
The ``action`` file is for setting and getting what action you want to apply to
|
||||||
memory regions having specific access pattern of the interest. The keywords
|
memory regions having specific access pattern of the interest. The keywords
|
||||||
@ -347,6 +351,46 @@ as below.
|
|||||||
|
|
||||||
The ``interval`` should written in microseconds unit.
|
The ``interval`` should written in microseconds unit.
|
||||||
|
|
||||||
|
schemes/<N>/filters/
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Users could know something more than the kernel for specific types of memory.
|
||||||
|
In the case, users could do their own management for the memory and hence
|
||||||
|
doesn't want DAMOS bothers that. Users could limit DAMOS by setting the access
|
||||||
|
pattern of the scheme and/or the monitoring regions for the purpose, but that
|
||||||
|
can be inefficient in some cases. In such cases, users could set non-access
|
||||||
|
pattern driven filters using files in this directory.
|
||||||
|
|
||||||
|
In the beginning, this directory has only one file, ``nr_filters``. Writing a
|
||||||
|
number (``N``) to the file creates the number of child directories named ``0``
|
||||||
|
to ``N-1``. Each directory represents each filter. The filters are evaluated
|
||||||
|
in the numeric order.
|
||||||
|
|
||||||
|
Each filter directory contains three files, namely ``type``, ``matcing``, and
|
||||||
|
``memcg_path``. You can write one of two special keywords, ``anon`` for
|
||||||
|
anonymous pages, or ``memcg`` for specific memory cgroup 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. 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``.::
|
||||||
|
|
||||||
|
# echo 2 > nr_filters
|
||||||
|
# # filter out anonymous pages
|
||||||
|
echo anon > 0/type
|
||||||
|
echo Y > 0/matching
|
||||||
|
# # further filter out all cgroups except one at '/having_care_already'
|
||||||
|
echo memcg > 1/type
|
||||||
|
echo /having_care_already > 1/memcg_path
|
||||||
|
echo N > 1/matching
|
||||||
|
|
||||||
|
Note that filters could be ignored depend on the running DAMON operations set
|
||||||
|
`implementation <sysfs_contexts>`.
|
||||||
|
|
||||||
.. _sysfs_schemes_stats:
|
.. _sysfs_schemes_stats:
|
||||||
|
|
||||||
schemes/<N>/stats/
|
schemes/<N>/stats/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user