[RFC PATCH v1.3 08/18] mm/damon/core: remove damon_warn_fix_nr_accesses_corruption()

From: SeongJae Park

Date: Mon Jun 22 2026 - 10:23:40 EST


nr_accesses_bp is delicate. Once it is corrupted, the consequence is
the bad madness of DAMON monitoring results. From developments of
features of size, we historically found nr_accesses_bp can be corrupted
by complicated bugs that are not easy to debug. Hence we added a
function for finding the corruption and fixing it right away.

There are no more uses of nr_accesses_bp. Hence the function for
corruption detection and fix is no more needed. Rip it out.

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

diff --git a/mm/damon/core.c b/mm/damon/core.c
index ca68c4835c391..89ac5552085a8 100644
--- a/mm/damon/core.c
+++ b/mm/damon/core.c
@@ -2002,19 +2002,6 @@ int damos_walk(struct damon_ctx *ctx, struct damos_walk_control *control)
return 0;
}

-/*
- * Warn and fix corrupted ->nr_accesses[_bp] for investigations and preventing
- * the problem being propagated.
- */
-static void damon_warn_fix_nr_accesses_corruption(struct damon_region *r)
-{
- if (r->nr_accesses_bp == r->nr_accesses * 10000)
- return;
- WARN_ONCE(true, "invalid nr_accesses_bp at reset: %u %u\n",
- r->nr_accesses_bp, r->nr_accesses);
- r->nr_accesses_bp = r->nr_accesses * 10000;
-}
-
#ifdef CONFIG_DAMON_DEBUG_SANITY
static void damon_verify_reset_aggregated(struct damon_region *r,
struct damon_ctx *c)
@@ -2056,7 +2043,6 @@ static void kdamond_reset_aggregated(struct damon_ctx *c)
trace_damon_aggregated(ti, r, damon_nr_regions(t));
trace_damon_region_aggregated(ti, r,
damon_nr_regions(t), nr_probes);
- damon_warn_fix_nr_accesses_corruption(r);
r->last_nr_accesses = r->nr_accesses;
r->nr_accesses = 0;
for (i = 0; i < DAMON_MAX_PROBES; i++)
--
2.47.3