mm-damon-tests-core-kunit-test-the-temporal-tuners-size-quota-conversion.patch removed from -mm tree
The quilt patch titled
Subject: mm/damon/tests/core-kunit: test the temporal tuner's size quota conversion
has been removed from the -mm tree. Its filename was
mm-damon-tests-core-kunit-test-the-temporal-tuners-size-quota-conversion.patch
This patch was dropped because it was merged into the mm-stable branch of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
------------------------------------------------------
From: Donggeun Yoo <[email protected]>
Subject: mm/damon/tests/core-kunit: test the temporal tuner's size quota conversion
Date: Mon, 28 Sep 2026 01:48:15 -0700
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.
---
mm/damon/tests/core-kunit.h | 48 ++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+)
mm/damon/tests/core-kunit.h renamed from mm/damon/tests/core-kunit.h~mm-damon-tests-core-kunit-test-the-temporal-tuners-size-quota-conversion +48 -0
@@ -2347,6 +2347,53 @@ static void damon_test_rand(struct kunit } } +static void damos_test_esz_goal_temporal (struct kunit *test) +{ +struct damos_access_pattern pattern = {}; +struct damos_watermarks wmarks = {}; +struct damos_quota quota = { + .goal_tuner =DAMOS_QUOTA_GOAL_TUNER_TEMPORAL , + }; +struct damos_quota_goal *goal; +struct damon_ctx *ctx; +struct damos *s; + + ctx =damon_new_ctx (); +KUNIT_ASSERT_NOT_NULL (test, ctx); + + s =damon_new_scheme (&pattern,DAMOS_STAT ,0 , "a, &wmarks, +NUMA_NO_NODE ); +if (!s) { +damon_destroy_ctx (ctx); +kunit_skip (test,"scheme alloc fail" ); + } +damon_add_scheme (ctx, s); + + goal =damos_new_quota_goal (DAMOS_QUOTA_USER_INPUT ,10000 ); +if (!goal) { +damon_destroy_ctx (ctx); +kunit_skip (test,"quota goal alloc fail" ); + } + goal->current_value =0 ; +damos_add_quota_goal (&s->quota, goal); + +/* The largest size quota the basis-point conversion can hold. */ + s->quota.sz =ULONG_MAX /10000 ; +damos_set_effective_quota (ctx, s); +KUNIT_EXPECT_EQ (test, s->quota.esz,ULONG_MAX /10000 ); + +/* Any larger one saturates instead of wrapping. */ + s->quota.sz =ULONG_MAX /10000 +1 ; +damos_set_effective_quota (ctx, s); +KUNIT_EXPECT_EQ (test, s->quota.esz,ULONG_MAX /10000 ); + + s->quota.sz =ULONG_MAX ; +damos_set_effective_quota (ctx, s); +KUNIT_EXPECT_EQ (test, s->quota.esz,ULONG_MAX /10000 ); + +damon_destroy_ctx (ctx); +} +static struct kunit_case damon_test_cases[] = {KUNIT_CASE (damon_test_target),KUNIT_CASE (damon_test_regions),
@@ -2388,6 +2435,7 @@ static struct kunit_case damon_test_caseKUNIT_CASE (damon_test_is_last_region),KUNIT_CASE (damon_test_walk_control_obsolete),KUNIT_CASE (damon_test_rand), + KUNIT_CASE(damos_test_esz_goal_temporal), {}, };
_
Patches currently in -mm which might be from [email protected] are
userfaultfd-clear-the-inherited-uffd-bit-in-move_swap_pte.patch