mm/damon/core: add damon_nr_regions() debug_sanity check

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.

Link: https://lkml.kernel.org/r/20260306152914.86303-5-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org>
Cc: Brendan Higgins <brendan.higgins@linux.dev>
Cc: David Gow <davidgow@google.com>
Cc: Shuah Khan <shuah@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
SeongJae Park 2026-03-06 07:29:07 -08:00 committed by Andrew Morton
parent 9a647920d0
commit 242a764abe

View File

@ -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;
}