From: SeongJae Park Date: Mon, 18 May 2026 23:41:11 +0000 (-0700) Subject: mm/damon/paddr: support DAMON_FILTER_TYPE_MEMCG X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ba3be5430ffa7e5debec2e0fe61518a2db0489ca;p=thirdparty%2Flinux.git mm/damon/paddr: support DAMON_FILTER_TYPE_MEMCG Implement the support of DAMON_FILTER_TYPE_MEMCG on the DAMON operation set implementation for the physical address space. Link: https://lore.kernel.org/20260518234119.97569-24-sj@kernel.org Signed-off-by: SeongJae Park Cc: David Hildenbrand Cc: Jonathan Corbet Cc: Liam R. Howlett Cc: Lorenzo Stoakes Cc: "Masami Hiramatsu (Google)" Cc: Mathieu Desnoyers Cc: Michal Hocko Cc: Mike Rapoport Cc: Shuah Khan Cc: Steven Rostedt Cc: Suren Baghdasaryan Cc: Vlastimil Babka Signed-off-by: Andrew Morton --- diff --git a/mm/damon/paddr.c b/mm/damon/paddr.c index 9997c5174ef1..d0598f5f2688 100644 --- a/mm/damon/paddr.c +++ b/mm/damon/paddr.c @@ -124,6 +124,7 @@ static bool damon_pa_filter_match(struct damon_filter *filter, struct folio *folio) { bool matched = false; + struct mem_cgroup *memcg; switch (filter->type) { case DAMON_FILTER_TYPE_ANON: @@ -133,6 +134,19 @@ static bool damon_pa_filter_match(struct damon_filter *filter, } matched = folio_test_anon(folio); break; + case DAMON_FILTER_TYPE_MEMCG: + if (!folio) { + matched = false; + break; + } + rcu_read_lock(); + memcg = folio_memcg_check(folio); + if (!memcg) + matched = false; + else + matched = filter->memcg_id == mem_cgroup_id(memcg); + rcu_read_unlock(); + break; default: break; }