mm/damon/sysfs: remove damon_sysfs_cmd_request_callback() and its callers
authorSeongJae Park <sj@kernel.org>
Thu, 6 Mar 2025 17:59:01 +0000 (09:59 -0800)
committerAndrew Morton <akpm@linux-foundation.org>
Tue, 18 Mar 2025 05:06:55 +0000 (22:06 -0700)
damon_sysfs_cmd_request_callback() is the damon_callback hook functions
that were used to handle user requests that need to read and/or write
DAMON internal data.  All the usages are now updated to use damon_call()
or damos_walk(), though.  Remove it and its callers.

Link: https://lkml.kernel.org/r/20250306175908.66300-7-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/damon/sysfs.c

index 166161f12c2605825d490039d53a73f53b4b69ee..e5bcf019086fc0503f26da7dc36cea1613f4e189 100644 (file)
@@ -1529,65 +1529,6 @@ static int damon_sysfs_upd_tuned_intervals(void *data)
        return 0;
 }
 
-/*
- * damon_sysfs_cmd_request_callback() - DAMON callback for handling requests.
- * @c:         The DAMON context of the callback.
- * @active:    Whether @c is not deactivated due to watermarks.
- * @after_aggr:        Whether this is called from after_aggregation() callback.
- *
- * This function is periodically called back from the kdamond thread for @c.
- * Then, it checks if there is a waiting DAMON sysfs request and handles it.
- */
-static int damon_sysfs_cmd_request_callback(struct damon_ctx *c, bool active,
-               bool after_aggregation)
-{
-       struct damon_sysfs_kdamond *kdamond;
-       int err = 0;
-
-       /* avoid deadlock due to concurrent state_store('off') */
-       if (!mutex_trylock(&damon_sysfs_lock))
-               return 0;
-       kdamond = damon_sysfs_cmd_request.kdamond;
-       if (!kdamond || kdamond->damon_ctx != c)
-               goto out;
-       switch (damon_sysfs_cmd_request.cmd) {
-       default:
-               break;
-       }
-       /* Mark the request as invalid now. */
-       damon_sysfs_cmd_request.kdamond = NULL;
-out:
-       mutex_unlock(&damon_sysfs_lock);
-       return err;
-}
-
-static int damon_sysfs_after_wmarks_check(struct damon_ctx *c)
-{
-       /*
-        * after_wmarks_check() is called back while the context is deactivated
-        * by watermarks.
-        */
-       return damon_sysfs_cmd_request_callback(c, false, false);
-}
-
-static int damon_sysfs_after_sampling(struct damon_ctx *c)
-{
-       /*
-        * after_sampling() is called back only while the context is not
-        * deactivated by watermarks.
-        */
-       return damon_sysfs_cmd_request_callback(c, true, false);
-}
-
-static int damon_sysfs_after_aggregation(struct damon_ctx *c)
-{
-       /*
-        * after_aggregation() is called back only while the context is not
-        * deactivated by watermarks.
-        */
-       return damon_sysfs_cmd_request_callback(c, true, true);
-}
-
 static struct damon_ctx *damon_sysfs_build_ctx(
                struct damon_sysfs_context *sys_ctx)
 {
@@ -1603,9 +1544,6 @@ static struct damon_ctx *damon_sysfs_build_ctx(
                return ERR_PTR(err);
        }
 
-       ctx->callback.after_wmarks_check = damon_sysfs_after_wmarks_check;
-       ctx->callback.after_sampling = damon_sysfs_after_sampling;
-       ctx->callback.after_aggregation = damon_sysfs_after_aggregation;
        ctx->callback.before_terminate = damon_sysfs_before_terminate;
        return ctx;
 }