Changes from RFC v1 (https://lore.kernel.org/r/20240307030013.47041-1-sj@xxxxxxxxxx) - Rename __damon_pa_young() to damon_folio_young_one() - Mark the folio as old from the filter for the next check 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 (4): mm/damon/paddr: implement damon_folio_young() mm/damon/paddr: implement damon_folio_mkold() mm/damon: add DAMOS filter type YOUNG mm/damon/paddr: support DAMOS filter type YOUNG include/linux/damon.h | 2 ++ mm/damon/paddr.c | 64 +++++++++++++++++++++++++--------------- mm/damon/sysfs-schemes.c | 1 + 3 files changed, 43 insertions(+), 24 deletions(-) base-commit: 13043cde46a19e72d37965b67b74e564623f65e7 -- 2.39.2