Skip to content
This repository has been archived by the owner on Nov 21, 2022. It is now read-only.

Commit

Permalink
mm/damon/reclaim: fix the timer always stays active
Browse files Browse the repository at this point in the history
The timer stays active even if the reclaim mechanism is never enabled.  It
is unnecessary overhead can be completely avoided by using
module_param_cb() for enabled flag.

Link: https://lkml.kernel.org/r/20220421125910.1052459-1-tuhailong@gmail.com
Signed-off-by: Hailong Tu <tuhailong@gmail.com>
Reviewed-by: SeongJae Park <sj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
  • Loading branch information
Hailong Tu authored and akpm00 committed Apr 29, 2022
1 parent cef4493 commit 059342d
Showing 1 changed file with 25 additions and 2 deletions.
27 changes: 25 additions & 2 deletions mm/damon/reclaim.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
* this.
*/
static bool enabled __read_mostly;
module_param(enabled, bool, 0600);

/*
* Time threshold for cold memory regions identification in microseconds.
Expand Down Expand Up @@ -358,11 +357,35 @@ static void damon_reclaim_timer_fn(struct work_struct *work)
enabled = last_enabled;
}

schedule_delayed_work(&damon_reclaim_timer,
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);

static int enabled_store(const char *val,
const struct kernel_param *kp)
{
int rc = param_set_bool(val, kp);

if (rc < 0)
return rc;

if (enabled)
schedule_delayed_work(&damon_reclaim_timer, 0);

return 0;
}

static const struct kernel_param_ops enabled_param_ops = {
.set = enabled_store,
.get = param_get_bool,
};

module_param_cb(enabled, &enabled_param_ops, &enabled, 0600);
MODULE_PARM_DESC(enabled,
"Enable or disable DAMON_RECLAIM (default: disabled)");

static int damon_reclaim_after_aggregation(struct damon_ctx *c)
{
struct damos *s;
Expand Down

0 comments on commit 059342d

Please sign in to comment.