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 --- mm/damon/core.c | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/mm/damon/core.c b/mm/damon/core.c index 2eddf2674f4fa..12d09d2f7ea1e 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -1992,19 +1992,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) @@ -2046,7 +2033,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