]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
mm/damon: remove damon_operations->cleanup()
authorSeongJae Park <sj@kernel.org>
Sat, 17 Jan 2026 17:52:48 +0000 (09:52 -0800)
committerAndrew Morton <akpm@linux-foundation.org>
Sat, 31 Jan 2026 22:22:45 +0000 (14:22 -0800)
Patch series "mm/damon: cleanup kdamond, damon_call(), damos filter and
DAMON_MIN_REGION".

Do miscellaneous code cleanups for improving readability.  First three
patches cleanup kdamond termination process, by removing unused operation
set cleanup callback (patch 1) and moving damon_ctx specific resource
cleanups on kdamond termination to synchronization-easy place (patches 2
and 3).  Next two patches touch damon_call() infrastructure, by
refactoring kdamond_call() function to do less and simpler locking
operations (patch 4), and documenting when dealloc_on_free does work
(patch 5).  Final three patches rename things for clear uses of those.
Those rename damos_filter_out() to be more explicit about the fact that it
is only for core-handled filters (patch 6), DAMON_MIN_REGION macro to be
more explicit it is not about number of regions but size of each region
(patch 7), and damon_ctx->min_sz_region to be different from
damos_access_patern->min_sz_region (patch 8), so that those are not
confusing and easy to grep.

This patch (of 8):

damon_operations->cleanup() was added for a case that an operation set
implementation requires additional cleanups.  But no such implementation
exists at the moment.  Remove it.

Link: https://lkml.kernel.org/r/20260117175256.82826-1-sj@kernel.org
Link: https://lkml.kernel.org/r/20260117175256.82826-2-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
include/linux/damon.h
mm/damon/core.c
mm/damon/paddr.c
mm/damon/vaddr.c

index e6930d8574d31fd9feac37e4deabc156ecf22411..bd4c76b126bd2741115a5241d1ebd226494b040c 100644 (file)
@@ -607,7 +607,6 @@ enum damon_ops_id {
  * @apply_scheme:              Apply a DAMON-based operation scheme.
  * @target_valid:              Determine if the target is valid.
  * @cleanup_target:            Clean up each target before deallocation.
- * @cleanup:                   Clean up the context.
  *
  * DAMON can be extended for various address spaces and usages.  For this,
  * users should register the low level operations for their target address
@@ -640,7 +639,6 @@ enum damon_ops_id {
  * @target_valid should check whether the target is still valid for the
  * monitoring.
  * @cleanup_target is called before the target will be deallocated.
- * @cleanup is called from @kdamond just before its termination.
  */
 struct damon_operations {
        enum damon_ops_id id;
@@ -656,7 +654,6 @@ struct damon_operations {
                        struct damos *scheme, unsigned long *sz_filter_passed);
        bool (*target_valid)(struct damon_target *t);
        void (*cleanup_target)(struct damon_target *t);
-       void (*cleanup)(struct damon_ctx *context);
 };
 
 /*
index 81b998d32074fc487218e11163b3cc7de67f8874..53514cb712cf2b8843e82b573f36d057d2477edc 100644 (file)
@@ -2859,8 +2859,6 @@ done:
                        damon_destroy_region(r, t);
        }
 
-       if (ctx->ops.cleanup)
-               ctx->ops.cleanup(ctx);
        kfree(ctx->regions_score_histogram);
        kdamond_call(ctx, true);
 
index 4c2c935d82d67a9c21d6628039ea387de534d34f..9bfe488268407cbda62db3545c3822f66da3968b 100644 (file)
@@ -373,7 +373,6 @@ static int __init damon_pa_initcall(void)
                .prepare_access_checks = damon_pa_prepare_access_checks,
                .check_accesses = damon_pa_check_accesses,
                .target_valid = NULL,
-               .cleanup = NULL,
                .apply_scheme = damon_pa_apply_scheme,
                .get_scheme_score = damon_pa_scheme_score,
        };
index 23ed738a0bd6f91f1387d4ee4784a156f64dc311..40c73adf1946f12729c287cecc556353e58758ae 100644 (file)
@@ -1014,7 +1014,6 @@ static int __init damon_va_initcall(void)
                .check_accesses = damon_va_check_accesses,
                .target_valid = damon_va_target_valid,
                .cleanup_target = damon_va_cleanup_target,
-               .cleanup = NULL,
                .apply_scheme = damon_va_apply_scheme,
                .get_scheme_score = damon_va_scheme_score,
        };