[RFC PATCH v2 04/10] mm/damon/core: add damon_nr_regions() debug_sanity check

From: SeongJae Park

Date: Sun Mar 01 2026 - 12:44:25 EST


damon_target->nr_regions is introduced to get the number quickly without
having to iterate regions always. Add a sanity check for that under
CONFIG_DAMON_DEBUG_SANITY.

Signed-off-by: SeongJae Park <sj@xxxxxxxxxx>
---
mm/damon/core.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)

diff --git a/mm/damon/core.c b/mm/damon/core.c
index 92eac5eb96026..2b5aed89d449d 100644
--- a/mm/damon/core.c
+++ b/mm/damon/core.c
@@ -545,8 +545,27 @@ void damon_destroy_target(struct damon_target *t, struct damon_ctx *ctx)
damon_free_target(t);
}

+#ifdef CONFIG_DAMON_DEBUG_SANITY
+static void damon_verify_nr_regions(struct damon_target *t)
+{
+ struct damon_region *r;
+ unsigned int count = 0;
+
+ damon_for_each_region(r, t)
+ count++;
+ WARN_ONCE(count != t->nr_regions, "t->nr_regions (%u) != count (%u)\n",
+ t->nr_regions, count);
+}
+#else
+static void damon_verify_nr_regions(struct damon_target *t)
+{
+}
+#endif
+
unsigned int damon_nr_regions(struct damon_target *t)
{
+ damon_verify_nr_regions(t);
+
return t->nr_regions;
}

--
2.47.3