[RFC PATCH 0/3] mm/damon: add a DAMOS filter type for page granularity access recheck

From: SeongJae Park
Date: Wed Mar 06 2024 - 22:00:26 EST


DAMON allows users to specify desired ranges of overhead and accuracy of
the monitoring, and do its best effort to make most lightweight and
accurate results. A recent discussion for tiered memory management
support from DAMON[1] revealed that the best effort accuracy may not
suffice in some use cases, while increasing the minimum accuracy can
incur too high overhead. The discussion further concluded finding
memory regions of specific access pattern via DAMON first, and then
double checking the access of the region again in finer granularity
could help increasing the accuracy while keeping the low overhead.

Add a new type of DAMOS filter, namely YOUNG for such a case. Like anon
and memcg, the type of filter is applied to each page of the memory
region of DAMOS target memory region, and check if the page is accessed
since the last check. Because this is a filter type that applied in
page granularity, the support depends on DAMON operations set. Because
there are expected usages of this filter for physical address space
based DAMOS usage[1], implement the support for only DAMON operations
set for the physical address space, paddr.

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

SeongJae Park (3):
mm/damon: add DAMOS filter type YOUNG
mm/damon/paddr: implement damon_folio_young()
mm/damon/paddr: support DAMOS filter type YOUNG

include/linux/damon.h | 2 ++
mm/damon/paddr.c | 29 +++++++++++++++++++----------
mm/damon/sysfs-schemes.c | 1 +
3 files changed, 22 insertions(+), 10 deletions(-)


base-commit: 78a854de1f605e99ccc20df1775f237120cca47c
--
2.39.2