[RFC PATCH -next 14/16] mm/damon/core: convert sz to byte units when updating state

From: Quanmin Yan
Date: Tue Aug 12 2025 - 23:55:20 EST


After introducing ctx->addr_unit, the unit of sz might not
be in bytes. However, sz_applied is returned in bytes after
processing by paddr. To maintain external consistency, sz
is converted to byte units when updating the state.

Signed-off-by: Quanmin Yan <yanquanmin1@xxxxxxxxxx>
---
mm/damon/core.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/mm/damon/core.c b/mm/damon/core.c
index b162aa1156fc..bc764f9dc5c5 100644
--- a/mm/damon/core.c
+++ b/mm/damon/core.c
@@ -1889,7 +1889,9 @@ static void damos_apply_scheme(struct damon_ctx *c, struct damon_target *t,
r->age = 0;

update_stat:
- damos_update_stat(s, sz, sz_applied, sz_ops_filter_passed);
+ damos_update_stat(s,
+ sz * (c->ops.id == DAMON_OPS_PADDR ? c->addr_unit : 1),
+ sz_applied, sz_ops_filter_passed);
}

static void damon_do_apply_schemes(struct damon_ctx *c,
--
2.34.1