mm/damon/paddr: implement DAMOS filter type YOUNG
authorSeongJae Park <sj@kernel.org>
Fri, 26 Apr 2024 19:52:43 +0000 (12:52 -0700)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 6 May 2024 00:53:55 +0000 (17:53 -0700)
DAMOS filter of type YOUNG is defined, but not yet implemented by any
DAMON operations set.  Add the implementation on 'paddr', the DAMON
operations set for the physical address space.

Link: https://lkml.kernel.org/r/20240426195247.100306-5-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org>
Tested-by: Honggyu Kim <honggyu.kim@sk.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/damon/paddr.c

index 310b803c6277961d2032dfb5888ad38b6ae678f2..5685ba485097d26f839fed61a775f466da33ae7e 100644 (file)
@@ -214,6 +214,11 @@ static bool __damos_pa_filter_out(struct damos_filter *filter,
                        matched = filter->memcg_id == mem_cgroup_id(memcg);
                rcu_read_unlock();
                break;
+       case DAMOS_FILTER_TYPE_YOUNG:
+               matched = damon_folio_young(folio);
+               if (matched)
+                       damon_folio_mkold(folio);
+               break;
        default:
                break;
        }