]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
samples/damon/wsse: use damon_call() repeat mode instead of damon_callback
authorSeongJae Park <sj@kernel.org>
Sat, 12 Jul 2025 19:50:09 +0000 (12:50 -0700)
committerAndrew Morton <akpm@linux-foundation.org>
Sun, 20 Jul 2025 01:59:55 +0000 (18:59 -0700)
wsse uses damon_callback for periodically reading DAMON internal data.
Use its alternative, damon_call() repeat mode.

Link: https://lkml.kernel.org/r/20250712195016.151108-8-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
samples/damon/wsse.c

index d87b3b0801d2c4b5236d4128786ab3a60b1f45d0..a250e86b24a552ffb6d93a067d90fb0bc1e42a1f 100644 (file)
@@ -35,8 +35,9 @@ MODULE_PARM_DESC(enabled, "Enable or disable DAMON_SAMPLE_WSSE");
 static struct damon_ctx *ctx;
 static struct pid *target_pidp;
 
-static int damon_sample_wsse_after_aggregate(struct damon_ctx *c)
+static int damon_sample_wsse_repeat_call_fn(void *data)
 {
+       struct damon_ctx *c = data;
        struct damon_target *t;
 
        damon_for_each_target(t, c) {
@@ -52,9 +53,15 @@ static int damon_sample_wsse_after_aggregate(struct damon_ctx *c)
        return 0;
 }
 
+static struct damon_call_control repeat_call_control = {
+       .fn = damon_sample_wsse_repeat_call_fn,
+       .repeat = true,
+};
+
 static int damon_sample_wsse_start(void)
 {
        struct damon_target *target;
+       int err;
 
        pr_info("start\n");
 
@@ -79,8 +86,11 @@ static int damon_sample_wsse_start(void)
        }
        target->pid = target_pidp;
 
-       ctx->callback.after_aggregation = damon_sample_wsse_after_aggregate;
-       return damon_start(&ctx, 1, true);
+       err = damon_start(&ctx, 1, true);
+       if (err)
+               return err;
+       repeat_call_control.data = ctx;
+       return damon_call(ctx, &repeat_call_control);
 }
 
 static void damon_sample_wsse_stop(void)