mm/damon/sysfs: remove damon_sysfs_cmd_request_callback() and its callers

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>
This commit is contained in:
SeongJae Park
2025-03-06 09:59:01 -08:00
committed by Andrew Morton
parent 8b40db0edf
commit 311f34ff85

View 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;
}