Re: [PATCH v1 2/2] mm/damon/tests/core-kunit: test the temporal tuner's size quota conversion

From: SJ Park

Date: Sat Sep 19 2026 - 13:02:24 EST


On Sat, 19 Sep 2026 16:13:24 +0900 Donggeun Yoo <donggeunyoo.kernel@xxxxxxxxx> wrote:

> damos_goal_tune_esz_bp_temporal() encodes the size quota in basis points,
> so the conversion is exact only up to ULONG_MAX / 10000. Pin the three
> sizes around that boundary: the largest one that fits, the first one that
> does not, and ULONG_MAX.
>
> Signed-off-by: Donggeun Yoo <donggeunyoo.kernel@xxxxxxxxx>
> ---
> mm/damon/tests/core-kunit.h | 35 +++++++++++++++++++++++++++++++++++
> 1 file changed, 35 insertions(+)
>
> diff --git a/mm/damon/tests/core-kunit.h b/mm/damon/tests/core-kunit.h
> index 5ff0436c5844..4460dce0352c 100644
> --- a/mm/damon/tests/core-kunit.h
> +++ b/mm/damon/tests/core-kunit.h
> @@ -1929,6 +1929,40 @@ static void damon_test_rand(struct kunit *test)
> }
> }
>
> +static void damos_test_esz_goal_temporal(struct kunit *test)
> +{
> + unsigned long max_sz = ULONG_MAX / 10000;
> + struct damos_quota_goal goal = {
> + .metric = DAMOS_QUOTA_USER_INPUT,
> + .target_value = 10000,
> + .current_value = 0,
> + };

Let's use damon_new_scheme() and damos_new_quota_goal() unless it makes code
too complicated.

> + struct damon_ctx *ctx;
> + struct damos s;
> +
> + ctx = damon_new_ctx();
> + KUNIT_ASSERT_NOT_NULL(test, ctx);
> +
> + memset(&s, 0, sizeof(s));

> + INIT_LIST_HEAD(&s.quota.goals);
> + list_add(&goal.list, &s.quota.goals);

Let's use existing helper, damos_add_quota_goal().

> + s.quota.goal_tuner = DAMOS_QUOTA_GOAL_TUNER_TEMPORAL;
> +
> + s.quota.sz = max_sz;

Meaning of 'max_sz' is bit confusing. Why don't you use 'ULONG_MAX / 10000'
here?

[...]


Other than above, looks good to me.


Thanks,
SJ