Re: [RFC PATCH v2 01/10] mm/damon/core: introduce damos_quota_goal_tuner

From: SeongJae Park

Date: Fri Mar 06 2026 - 19:21:25 EST


On Tue, 3 Mar 2026 20:41:10 -0800 SeongJae Park <sj@xxxxxxxxxx> wrote:

> Currently DAMOS quota goal feature utilizes a single feedback loop based
> algorithm for automatic tuning of the effective quota. It is useful in
> dynamic environments that operate systems with only kernels in the long
> term. But, no one fits all. It is not very easy to control in
> environments having more controlled characteristics and user-space
> control towers. We actually got multiple reports [1,2] of use cases
> that the algorithm is not optimal.
>
> Introduce a new field of 'struct damos_quotas', namely 'goal_tuner'. It
> specifies what tuning algorithm the given scheme should use, and allows
> DAMON API callers to set it as they want. Nonetheless, this commit
> introduces no new tuning algorithm but only the interface. This commit
> hence makes no behavioral change. A new algorithm will be added by the
> following commit.
>
> [1] https://lore.kernel.org/CALa+Y17__d=ZsM1yX+MXx0ozVdsXnFqF4p0g+kATEitrWyZFfg@xxxxxxxxxxxxxx
> [2] https://lore.kernel.org/20260204022537.814-1-yunjeong.mun@xxxxxx
>
> Signed-off-by: SeongJae Park <sj@xxxxxxxxxx>
> ---
[...]
> diff --git a/mm/damon/core.c b/mm/damon/core.c
> index e8c44541754f7..c5503fdb10bb7 100644
> --- a/mm/damon/core.c
> +++ b/mm/damon/core.c
> @@ -432,6 +432,7 @@ struct damos *damon_new_scheme(struct damos_access_pattern *pattern,
> scheme->quota = *(damos_quota_init(quota));
> /* quota.goals should be separately set by caller */
> INIT_LIST_HEAD(&scheme->quota.goals);
> + scheme->quota.goal_tuner = quota->goal_tuner;

Because scheme->quota is overwrote with *quota above, the above goal_tuner set
is unnecessary. I'll drop this in the next spin.


Thanks,
SJ

[...]