mbox series

[RFC,v2,0/4] mm/damon: add a DAMOS filter type for page granularity access recheck

Message ID 20240311204545.47097-1-sj@kernel.org (mailing list archive)
Headers show
Series mm/damon: add a DAMOS filter type for page granularity access recheck | expand

Message

SeongJae Park March 11, 2024, 8:45 p.m. UTC
Changes from RFC v1
(https://lore.kernel.org/r/20240307030013.47041-1-sj@kernel.org)
- 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@kernel.org


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

Comments

Honggyu Kim April 9, 2024, 9:24 a.m. UTC | #1
Hi SeongJae,

On Mon, 11 Mar 2024 13:45:41 -0700 SeongJae Park <sj@kernel.org> wrote:
> Changes from RFC v1
> (https://lore.kernel.org/r/20240307030013.47041-1-sj@kernel.org)
> - 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@kernel.org
> 
> 
> 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

I have tested your patches for evaluation of [1] and it all works fine.
Thanks very much for doing this work!

Tested-by: Honggyu Kim <honggyu.kim@sk.com>

[1] https://lore.kernel.org/damon/20240405060858.2818-1-honggyu.kim@sk.com

>  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
>