From: SeongJae Park <sj@kernel.org>
To: SeongJae Park <sj@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Jonathan Corbet <corbet@lwn.net>,
damon@lists.linux.dev, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH 07/10] Docs/mm/damon/design: document pass/block filters behaviors
Date: Tue, 7 Jan 2025 20:04:54 -0800 [thread overview]
Message-ID: <20250108040454.1283-1-sj@kernel.org> (raw)
In-Reply-To: <20250107201739.79484-8-sj@kernel.org>
On Tue, 7 Jan 2025 12:17:36 -0800 SeongJae Park <sj@kernel.org> wrote:
> Update DAMOS filters design document to describe the pass/block
> behavior of filters.
>
> Signed-off-by: SeongJae Park <sj@kernel.org>
> ---
> Documentation/mm/damon/design.rst | 34 +++++++++++++++++++++++++++----
> 1 file changed, 30 insertions(+), 4 deletions(-)
>
> diff --git a/Documentation/mm/damon/design.rst b/Documentation/mm/damon/design.rst
> index 449eb33688c2..3682e719b8a6 100644
> --- a/Documentation/mm/damon/design.rst
> +++ b/Documentation/mm/damon/design.rst
> @@ -504,9 +504,35 @@ have a list of latency-critical processes.
>
> To let users optimize DAMOS schemes with such special knowledge, DAMOS provides
> a feature called DAMOS filters. The feature allows users to set an arbitrary
> -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).
> +number of filters for each scheme. Each filter specifies
> +
> +- a type of memory (``type``),
> +- whether it is for the memory of the type or all except the type
> + (``matching``), and
> +- whether it is to allow (pass through the filter) or reject (block) applying
> + the scheme's action to the memory (``pass``).
> +
> +When multiple filters are installed, each filter is evaluated in the installed
> +order. If a part of memory is matched to one of the filter, next filters are
> +ignored. If a part of memory is not matched to any of the filters, the default
> +behavior is applied. That is, as long as it fulfills other conditions of the
> +scheme including the access pattern and quotas, the action will be applied to
> +the part of the memory.
> +
> +For example, let's assume 1) a filter for passing anonymous pages and 2)
> +another filter for blocking young pages are installed in the order. If a page
> +of a region that eligible to apply the scheme's action is an anonymous page,
> +the scheme's action will be applied to the page regardless of whether it is
> +young or not, since it matches with the first filter. If the page is not
> +anonymous but young, the scheme's action will not be applied, since the second
> +filter blocks it. If the page is neither anonymous nor young, no filter is
> +involved, so the action will be applied to the page.
> +
> +The fact that the action can be applied to any memory as long as no block
> +filter explicitly excluded it means that installing pass filters without any
> +block filter after those is same to not installing the pass filters, in terms
> +of the ``action`` applying. Statistics for DAMOS filters will still be
> +accounted, though.
The above last sentence is right in a sense, but not useful and could only
confuse readers. The statistics for DAMOS filters are filters passed size
stat, which is provided as per-scheme accumulated stat and per-region instant
information. The stat is for any memory that be able to apply the DAMOS action
after the filters check stage. Hence, whether it has passed the stage due to
existence of a pass filter that matches the memory, or the absence of any
matching filter is distinguishable.
> It is therefore still useful for monitoring purpose.
Hence, the above sentence is completely wrong. The case (installing pass
filtrs without any block filter after those) is not useful even for monitoring
purpose.
The RFC version of this patch was mentioning it correctly, but was not clearly
describing why it is not also useless for even monitoring purpose. I was also
confused due to the absence of the context. I will rewrite this part and send
the whole series again as v2.
Thanks,
SJ
[...]
next prev parent reply other threads:[~2025-01-08 4:05 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-07 20:17 [PATCH 00/10] mm/damon: extend DAMOS filters for inclusion SeongJae Park
2025-01-07 20:17 ` [PATCH 01/10] mm/damon: fixup damos_filter kernel-doc SeongJae Park
2025-01-07 20:17 ` [PATCH 02/10] mm/damon/core: add damos_filter->pass field SeongJae Park
2025-01-07 20:17 ` [PATCH 03/10] mm/damon/core: support damos_filter->pass SeongJae Park
2025-01-07 20:17 ` [PATCH 04/10] mm/damon/paddr: " SeongJae Park
2025-01-07 20:17 ` [PATCH 05/10] mm/damon: add pass argument to damos_new_filter() SeongJae Park
2025-01-07 20:17 ` [PATCH 06/10] mm/damon/sysfs-schemes: add a file for setting damos_filter->pass SeongJae Park
2025-01-07 20:17 ` [PATCH 07/10] Docs/mm/damon/design: document pass/block filters behaviors SeongJae Park
2025-01-08 4:04 ` SeongJae Park [this message]
2025-01-08 17:26 ` SeongJae Park
2025-01-07 20:17 ` [PATCH 08/10] Docs/ABI/damon: document DAMOS filter pass sysfs file SeongJae Park
2025-01-07 20:17 ` [PATCH 09/10] Docs/admin-guide/mm/damon/usage: omit DAMOS filter details in favor of design doc SeongJae Park
2025-01-07 20:17 ` [PATCH 10/10] Docs/admin-guide/mm/damon/usage: document DAMOS filter 'pass' sysfs file SeongJae Park
2025-01-08 4:09 ` [PATCH 00/10] mm/damon: extend DAMOS filters for inclusion 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=20250108040454.1283-1-sj@kernel.org \
--to=sj@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=corbet@lwn.net \
--cc=damon@lists.linux.dev \
--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