]> www.infradead.org Git - users/hch/misc.git/commit
mm/damon: respect core layer filters' allowance decision on ops layer
authorSeongJae Park <sj@kernel.org>
Fri, 28 Feb 2025 17:53:36 +0000 (09:53 -0800)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 17 Mar 2025 00:40:23 +0000 (17:40 -0700)
commit39a326e6daba5703a8e4de17cacc7ddb0dc5b07f
tree0c542c1596e275c50c27760f007fb6225323f2dd
parent665575cff098b696995ddaddf4646a4099941f5e
mm/damon: respect core layer filters' allowance decision on ops layer

Filtering decisions are made in filters evaluation order.  Once a decision
is made by a filter, filters that scheduled to be evaluated after the
decision-made filter should just respect it.  This is the intended and
documented behavior.  Since core layer-handled filters are evaluated
before operations layer-handled filters, decisions made on core layer
should respected by ops layer.

In case of reject filters, the decision is respected, since core
layer-rejected regions are not passed to ops layer.  But in case of allow
filters, ops layer filters don't know if the region has passed to them
because it was allowed by core filters or just because it didn't match to
any core layer.  The current wrong implementation assumes it was due to
not matched by any core filters.  As a reuslt, the decision is not
respected.  Pass the missing information to ops layer using a new filed in
'struct damos', and make the ops layer filters respect it.

Link: https://lkml.kernel.org/r/20250228175336.42781-1-sj@kernel.org
Fixes: 491fee286e56 ("mm/damon/core: support damos_filter->allow")
Signed-off-by: SeongJae Park <sj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
include/linux/damon.h
mm/damon/core.c
mm/damon/paddr.c