mm/damon/ops-common: support hugepage_size damon filter matching

Update ops-common data attribute filter matching logic to support
hugepage_size filter type.

Link: https://lore.kernel.org/20260915143359.91472-4-sj@kernel.org
Signed-off-by: SJ Park <sj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Cc: David Hildenbrand <david@kernel.org>
Cc: Liam R. Howlett <liam@infradead.org>
Cc: Lorenzo Stoakes <ljs@kernel.org>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Vlastimil Babka <vbabka@kernel.org>
This commit is contained in:
SJ Park 2026-09-15 07:33:52 -07:00 committed by Andrew Morton
parent a76723d4b6
commit 71fb2abf32

View File

@ -536,6 +536,7 @@ bool damon_ops_filter_match(struct damon_filter *filter, struct folio *folio)
{
bool matched = false;
struct mem_cgroup *memcg;
size_t folio_sz;
switch (filter->type) {
case DAMON_FILTER_TYPE_ANON:
@ -558,6 +559,15 @@ bool damon_ops_filter_match(struct damon_filter *filter, struct folio *folio)
matched = filter->memcg_id == mem_cgroup_id(memcg);
rcu_read_unlock();
break;
case DAMON_FILTER_TYPE_HUGEPAGE_SIZE:
if (!folio) {
matched = false;
break;
}
folio_sz = folio_size(folio);
matched = filter->range_min <= folio_sz &&
folio_sz <= filter->range_max;
break;
default:
break;
}