mm/damon/reclaim: make 'enabled' checking timer simpler
authorSeongJae Park <sj@kernel.org>
Mon, 6 Jun 2022 18:23:09 +0000 (18:23 +0000)
committerakpm <akpm@linux-foundation.org>
Mon, 4 Jul 2022 01:08:38 +0000 (18:08 -0700)
DAMON_RECLAIM's 'enabled' parameter store callback ('enabled_store()')
schedules the parameter check timer ('damon_reclaim_timer') if the
parameter is set as 'Y'.  Then, the timer schedules itself to check if
user has set the parameter as 'N'.  It's unnecessarily complex.

This commit makes it simpler by making the parameter store callback to
schedule the timer regardless of the parameter value and disabling the
timer's self scheduling.

Link: https://lkml.kernel.org/r/20220606182310.48781-6-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org>
Cc: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/damon/reclaim.c

index c2ed962..38da288 100644 (file)
@@ -353,7 +353,6 @@ static int damon_reclaim_turn(bool on)
        return 0;
 }
 
-#define ENABLE_CHECK_INTERVAL_MS       1000
 static struct delayed_work damon_reclaim_timer;
 static void damon_reclaim_timer_fn(struct work_struct *work)
 {
@@ -367,10 +366,6 @@ static void damon_reclaim_timer_fn(struct work_struct *work)
                else
                        enabled = last_enabled;
        }
-
-       if (enabled)
-               schedule_delayed_work(&damon_reclaim_timer,
-                       msecs_to_jiffies(ENABLE_CHECK_INTERVAL_MS));
 }
 static DECLARE_DELAYED_WORK(damon_reclaim_timer, damon_reclaim_timer_fn);
 
@@ -388,9 +383,7 @@ static int enabled_store(const char *val,
        if (!damon_reclaim_initialized)
                return rc;
 
-       if (enabled)
-               schedule_delayed_work(&damon_reclaim_timer, 0);
-
+       schedule_delayed_work(&damon_reclaim_timer, 0);
        return 0;
 }