]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
mm/damon: remove damon_callback->before_damos_apply
authorSeongJae Park <sj@kernel.org>
Thu, 6 Mar 2025 17:59:07 +0000 (09:59 -0800)
committerAndrew Morton <akpm@linux-foundation.org>
Tue, 18 Mar 2025 05:06:56 +0000 (22:06 -0700)
The hook was introduced to let DAMON kernel API users access DAMOS
schemes-eligible regions in a safe way.  Now it is no more used by anyone,
and the functionality is provided in a better way by damos_walk().  Remove
it.

Link: https://lkml.kernel.org/r/20250306175908.66300-13-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

index 5aa277f4c94873317285b8368c0c89b9208b6663..be7b281fb92299567b89727460c9294f75a1e3e1 100644 (file)
@@ -605,7 +605,6 @@ struct damon_operations {
  *
  * @after_wmarks_check:        Called after each schemes' watermarks check.
  * @after_aggregation: Called after each aggregation.
- * @before_damos_apply:        Called before applying DAMOS action.
  * @before_terminate:  Called before terminating the monitoring.
  *
  * The monitoring thread (&damon_ctx.kdamond) calls @before_terminate just
@@ -626,10 +625,6 @@ struct damon_operations {
 struct damon_callback {
        int (*after_wmarks_check)(struct damon_ctx *context);
        int (*after_aggregation)(struct damon_ctx *context);
-       int (*before_damos_apply)(struct damon_ctx *context,
-                       struct damon_target *target,
-                       struct damon_region *region,
-                       struct damos *scheme);
        void (*before_terminate)(struct damon_ctx *context);
 };
 
index 812b1c70c723063825a3e7c38080afe3e2656b9f..177716847f4e6335fd321b738f5ab90af3513b9b 100644 (file)
@@ -1731,7 +1731,6 @@ static void damos_apply_scheme(struct damon_ctx *c, struct damon_target *t,
        struct timespec64 begin, end;
        unsigned long sz_applied = 0;
        unsigned long sz_ops_filter_passed = 0;
-       int err = 0;
        /*
         * We plan to support multiple context per kdamond, as DAMON sysfs
         * implies with 'nr_contexts' file.  Nevertheless, only single context
@@ -1771,14 +1770,10 @@ static void damos_apply_scheme(struct damon_ctx *c, struct damon_target *t,
                if (damos_filter_out(c, t, r, s))
                        return;
                ktime_get_coarse_ts64(&begin);
-               if (c->callback.before_damos_apply)
-                       err = c->callback.before_damos_apply(c, t, r, s);
-               if (!err) {
-                       trace_damos_before_apply(cidx, sidx, tidx, r,
-                                       damon_nr_regions(t), do_trace);
-                       sz_applied = c->ops.apply_scheme(c, t, r, s,
-                                       &sz_ops_filter_passed);
-               }
+               trace_damos_before_apply(cidx, sidx, tidx, r,
+                               damon_nr_regions(t), do_trace);
+               sz_applied = c->ops.apply_scheme(c, t, r, s,
+                               &sz_ops_filter_passed);
                damos_walk_call_walk(c, t, r, s, sz_ops_filter_passed);
                ktime_get_coarse_ts64(&end);
                quota->total_charged_ns += timespec64_to_ns(&end) -