]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
mm/damon/sysfs: remove unnecessary online tuning handling code
authorSeongJae Park <sj@kernel.org>
Tue, 18 Jun 2024 18:18:02 +0000 (11:18 -0700)
committerAndrew Morton <akpm@linux-foundation.org>
Thu, 4 Jul 2024 02:30:14 +0000 (19:30 -0700)
damon/sysfs.c contains code for handling of online DAMON parameters update
edge cases.  It is no more necessary since damon_commit_ctx() takes care
of the cases.  Remove the unnecessary code.

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

index 73bdce2452c119dc70c32f7602e92b7c1e89dbe8..43a15156a7c36970a8ad3e79dac84e1267641011 100644 (file)
@@ -62,7 +62,7 @@ static void damon_sysfs_test_set_targets(struct kunit *test)
        sysfs_target->pid = __damon_sysfs_test_get_any_pid(
                        sysfs_target->pid + 1, 200);
        damon_sysfs_set_targets(ctx, sysfs_targets);
-       KUNIT_EXPECT_EQ(test, 1u, nr_damon_targets(ctx));
+       KUNIT_EXPECT_EQ(test, 2u, nr_damon_targets(ctx));
 
        damon_destroy_ctx(ctx);
        kfree(sysfs_targets->targets_arr);
index 0f9fe18beb40de8ae3af6bd318e8144d96f9156d..c729222797b8d1171c7d003ae95e9d2466485e02 100644 (file)
@@ -1162,72 +1162,16 @@ destroy_targets_out:
        return err;
 }
 
-static int damon_sysfs_update_target_pid(struct damon_target *target, int pid)
-{
-       struct pid *pid_new;
-
-       pid_new = find_get_pid(pid);
-       if (!pid_new)
-               return -EINVAL;
-
-       if (pid_new == target->pid) {
-               put_pid(pid_new);
-               return 0;
-       }
-
-       put_pid(target->pid);
-       target->pid = pid_new;
-       return 0;
-}
-
-static int damon_sysfs_update_target(struct damon_target *target,
-               struct damon_ctx *ctx,
-               struct damon_sysfs_target *sys_target)
-{
-       int err = 0;
-
-       if (damon_target_has_pid(ctx)) {
-               err = damon_sysfs_update_target_pid(target, sys_target->pid);
-               if (err)
-                       return err;
-       }
-
-       /*
-        * Do monitoring target region boundary update only if one or more
-        * regions are set by the user.  This is for keeping current monitoring
-        * target results and range easier, especially for dynamic monitoring
-        * target regions update ops like 'vaddr'.
-        */
-       if (sys_target->regions->nr)
-               err = damon_sysfs_set_regions(target, sys_target->regions);
-       return err;
-}
-
 static int damon_sysfs_set_targets(struct damon_ctx *ctx,
                struct damon_sysfs_targets *sysfs_targets)
 {
-       struct damon_target *t, *next;
-       int i = 0, err;
+       int i, err;
 
        /* Multiple physical address space monitoring targets makes no sense */
        if (ctx->ops.id == DAMON_OPS_PADDR && sysfs_targets->nr > 1)
                return -EINVAL;
 
-       damon_for_each_target_safe(t, next, ctx) {
-               if (i < sysfs_targets->nr) {
-                       err = damon_sysfs_update_target(t, ctx,
-                                       sysfs_targets->targets_arr[i]);
-                       if (err)
-                               return err;
-               } else {
-                       if (damon_target_has_pid(ctx))
-                               put_pid(t->pid);
-                       damon_destroy_target(t);
-               }
-               i++;
-       }
-
-       for (; i < sysfs_targets->nr; i++) {
+       for (i = 0; i < sysfs_targets->nr; i++) {
                struct damon_sysfs_target *st = sysfs_targets->targets_arr[i];
 
                err = damon_sysfs_add_target(st, ctx);