diff options
| author | SeongJae Park <sj@kernel.org> | 2026-03-06 18:29:07 +0300 |
|---|---|---|
| committer | Andrew Morton <akpm@linux-foundation.org> | 2026-04-05 23:53:20 +0300 |
| commit | 242a764abe149f297273be18fdb66cfeaf27dec2 (patch) | |
| tree | be06a9541f1e0b8e29bf3eeee21a2a5e23f46092 | |
| parent | 9a647920d03d9da5ca4868d853a8f9267de1e070 (diff) | |
| download | linux-242a764abe149f297273be18fdb66cfeaf27dec2.tar.xz | |
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>
| -rw-r--r-- | mm/damon/core.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/mm/damon/core.c b/mm/damon/core.c index c499a02ac44e..16bedde920f0 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; } |
