From nobody Sun Feb 8 04:57:27 2026 Received: from mail-pg1-f172.google.com (mail-pg1-f172.google.com [209.85.215.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C684D2FB630 for ; Sun, 21 Dec 2025 13:02:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766322170; cv=none; b=NdhafpABPhG+oqk47r+oxzlww2yXvsEi1AuBctG5be8OouN721lOs12pT0UNWu53vb5O8nCZ7h9bX5eTULGZSjkuXsHut9XIEcExYwK5ZLQ/dqH70wfZUqBtE+BIjVI/1d9+yamRvDF1nZzc1Lz6rcOfkiGowfCMweePdpbYrTs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766322170; c=relaxed/simple; bh=YMqQjGqHo3yCY1HtjvHQJhX4vCo3raqTMGv7qPELqDw=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=UV4aX4m/zRu5sf+sa+xFYSUgWCUBBlLzDbnY2ov2UoB9JJTYTPlhdAIZbxmVQ+30ldG4oB5iMcjBdSj09Hr0Wrt4GDroMJxQM/0LdpGo77tGvNxRfue4JsJEISOJUU/srIgqWyuo/N6h3CHjh7eaOSpMM4cjMwlP9Bttuxjjiqk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=JgsVaQCV; arc=none smtp.client-ip=209.85.215.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="JgsVaQCV" Received: by mail-pg1-f172.google.com with SMTP id 41be03b00d2f7-bfe88eeaa65so2304897a12.1 for ; Sun, 21 Dec 2025 05:02:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1766322167; x=1766926967; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=cSY7XOe/WRXINmaJjE9x1cwiIij569xd98uTVI5aS6I=; b=JgsVaQCV1DnvFJmdoB8YJxD1qopPtSB3YiBZ0WWT8dahbpQClSyd/Fu4MgOYlavWCc 90CpsichbplUkE+t/I7Rlv+GsS/R/EStFHrz77FlZ27bJLKncxQguv/E+UZtK7aoKE4X ZSOBAnSwqpe9UKr4yMYj5OsV/l7Diu2yxh8KV2m9Zf0T4ChTzIo0va6t7pqK/0xTdP+e 9yoVJ5aUBTnth1DQhnhwHaebWq7XCrdpE/9gnHptrK8xcqYfwGKzXk4tAvePN+maMvlC 96HulklRuvuECdJmcWUGSnu5Ou+REfWysVgktoDHTdlaNradmwdcrxNtumJ+zfXBpJrW IF5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766322167; x=1766926967; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=cSY7XOe/WRXINmaJjE9x1cwiIij569xd98uTVI5aS6I=; b=D6oefJv9hwUSa32vuTXx/8ek+4JPRns9FPq66bxFAnB/Bdj0w+KbA9eZs9h74OL2r7 Rn6RL5gQjcjKLH9sTn9uq3Z+NBVLYdcHwA9iHC3KDKDDXeH2ch8+a2XjsEItdTR3rUnw TcjchUqJ4tURoJ+B2DceVwh1GDisKhM+VmMDOdtKOp9bzwRBRF9/HhGlPdjhL401EJ4F pDGuB0upAJt5ch5GIPPdBA+vJKutyMISY77EDTDSL+g13v0gc24R7vcaZL8GKyRM1gru Q7gICYbd3xaOAwJbpfa4E+L1mHBbRIWzrdRjiXa8/KRhnZH/jpF4wb66kuFpAubBiOuN mNzA== X-Forwarded-Encrypted: i=1; AJvYcCVJBrzEyoApQypIYb3j3oYtaU02alwSYmRixHaD5r8d4bIyoPJBI6ekg2lUcipTTRoKUVMkrVsBwPDwYxY=@vger.kernel.org X-Gm-Message-State: AOJu0Yyz7+Olah9fhfa4vspWV8Gzg/B1P+W1Whlq7tW6j+IhVVE3a6B0 2EiwYq5a5IvYULjMAgGWqrO/fvDp9pQnS39fC+G9pym24/HpWXF7Zqx2 X-Gm-Gg: AY/fxX6EwuQqJk72tFEkJ3b21V7M5vBqElLaAX+MjeEfi1PDeY7j2hMgCGAzTIlbBK1 9Choxt24LCxryLEUi93PHFLKUgstcQJs2bgUOrhXAekPojTK+qWDZUU7TeJCYwwoqOWYSiJTfSR LGS7VU3KxLD6b5k6mIks01h9D/fP9INel3vj19N5NsaccY3ThQAhJyjxPYYJoLqdPkWfQZdPEs4 G5gXH+Xu2IWnDe//HkFfW9qjgsCtr0HfI7m4LfvcCVBclfwDyKi46P+Zq82G5zq7+Rb/LdpB0Ej X0em1NtENJhQDMryM1SfPokodT9CIw4ozBXC42WOtU9EYCiVgxExBepikQcdPWy4I8eiwMgYRDR ifzxAXjPGOPrrL4hKGDjxGjhSiOqXDSPaaaHnX15+NaoGbEJ4ZTNxSnSRgFseA9D7DYjzl+UyL/ uG X-Google-Smtp-Source: AGHT+IE0pzTSaBZW0PqBo1nLMFou749uCZH2R8Sj1acU7EbMWf8ZDkTgJYeOyEMZv1HM4VBoxc7dMg== X-Received: by 2002:a05:7022:2093:b0:119:e56c:18ae with SMTP id a92af1059eb24-121722c1f51mr7539579c88.22.1766322166515; Sun, 21 Dec 2025 05:02:46 -0800 (PST) Received: from dev.. ([208.184.112.130]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-121724cfd95sm31732013c88.1.2025.12.21.05.02.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 21 Dec 2025 05:02:46 -0800 (PST) From: Shu Anzai To: sj@kernel.org, akpm@linux-foundation.org Cc: shu17az@gmail.com, yanquanmin1@huawei.com, damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH] mm/damon/tests/core-kunit: extend test scenarios and remove redundancy Date: Sun, 21 Dec 2025 13:01:14 +0000 Message-ID: <20251221130114.1483856-1-shu17az@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add some missing test scenarios to cover a wider range of cases. Also, remove a redundant case in damos_test_commit_quota_goal(). Signed-off-by: Shu Anzai --- mm/damon/tests/core-kunit.h | 51 ++++++++++++++++++++++++------------- 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/mm/damon/tests/core-kunit.h b/mm/damon/tests/core-kunit.h index f59ae7ee19a0..e9ccc3fb34f9 100644 --- a/mm/damon/tests/core-kunit.h +++ b/mm/damon/tests/core-kunit.h @@ -158,6 +158,7 @@ static void damon_test_split_at(struct kunit *test) r->nr_accesses_bp =3D 420000; r->nr_accesses =3D 42; r->last_nr_accesses =3D 15; + r->age =3D 10; damon_add_region(r, t); damon_split_region_at(t, r, 25); KUNIT_EXPECT_EQ(test, r->ar.start, 0ul); @@ -170,6 +171,7 @@ static void damon_test_split_at(struct kunit *test) KUNIT_EXPECT_EQ(test, r->nr_accesses_bp, r_new->nr_accesses_bp); KUNIT_EXPECT_EQ(test, r->nr_accesses, r_new->nr_accesses); KUNIT_EXPECT_EQ(test, r->last_nr_accesses, r_new->last_nr_accesses); + KUNIT_EXPECT_EQ(test, r->age, r_new->age); =20 damon_free_target(t); } @@ -190,6 +192,7 @@ static void damon_test_merge_two(struct kunit *test) } r->nr_accesses =3D 10; r->nr_accesses_bp =3D 100000; + r->age =3D 9; damon_add_region(r, t); r2 =3D damon_new_region(100, 300); if (!r2) { @@ -198,12 +201,15 @@ static void damon_test_merge_two(struct kunit *test) } r2->nr_accesses =3D 20; r2->nr_accesses_bp =3D 200000; + r2->age =3D 21; damon_add_region(r2, t); =20 damon_merge_two_regions(t, r, r2); KUNIT_EXPECT_EQ(test, r->ar.start, 0ul); KUNIT_EXPECT_EQ(test, r->ar.end, 300ul); KUNIT_EXPECT_EQ(test, r->nr_accesses, 16u); + KUNIT_EXPECT_EQ(test, r->nr_accesses_bp, 160000u); + KUNIT_EXPECT_EQ(test, r->age, 17u); =20 i =3D 0; damon_for_each_region(r3, t) { @@ -232,12 +238,12 @@ static void damon_test_merge_regions_of(struct kunit = *test) { struct damon_target *t; struct damon_region *r; - unsigned long sa[] =3D {0, 100, 114, 122, 130, 156, 170, 184}; - unsigned long ea[] =3D {100, 112, 122, 130, 156, 170, 184, 230}; - unsigned int nrs[] =3D {0, 0, 10, 10, 20, 30, 1, 2}; + unsigned long sa[] =3D {0, 100, 114, 122, 130, 156, 170, 184, 235, 240}; + unsigned long ea[] =3D {100, 112, 122, 130, 156, 170, 184, 230, 240, 1023= 5}; + unsigned int nrs[] =3D {0, 0, 10, 10, 20, 30, 1, 2, 5, 5}; =20 - unsigned long saddrs[] =3D {0, 114, 130, 156, 170}; - unsigned long eaddrs[] =3D {112, 130, 156, 170, 230}; + unsigned long saddrs[] =3D {0, 114, 130, 156, 170, 235, 240}; + unsigned long eaddrs[] =3D {112, 130, 156, 170, 230, 240, 10235}; int i; =20 t =3D damon_new_target(); @@ -255,9 +261,9 @@ static void damon_test_merge_regions_of(struct kunit *t= est) } =20 damon_merge_regions_of(t, 9, 9999); - /* 0-112, 114-130, 130-156, 156-170 */ - KUNIT_EXPECT_EQ(test, damon_nr_regions(t), 5u); - for (i =3D 0; i < 5; i++) { + /* 0-112, 114-130, 130-156, 156-170, 170-230, 235-240, 240-10235 */ + KUNIT_EXPECT_EQ(test, damon_nr_regions(t), 7u); + for (i =3D 0; i < 7; i++) { r =3D __nth_region_of(t, i); KUNIT_EXPECT_EQ(test, r->ar.start, saddrs[i]); KUNIT_EXPECT_EQ(test, r->ar.end, eaddrs[i]); @@ -269,6 +275,9 @@ static void damon_test_split_regions_of(struct kunit *t= est) { struct damon_target *t; struct damon_region *r; + unsigned long sa[] =3D {0, 300, 500}; + unsigned long ea[] =3D {220, 400, 700}; + int i; =20 t =3D damon_new_target(); if (!t) @@ -286,14 +295,19 @@ static void damon_test_split_regions_of(struct kunit = *test) t =3D damon_new_target(); if (!t) kunit_skip(test, "second target alloc fail"); - r =3D damon_new_region(0, 220); - if (!r) { - damon_free_target(t); - kunit_skip(test, "second region alloc fail"); + for (i =3D 0; i < ARRAY_SIZE(sa); i++) { + r =3D damon_new_region(sa[i], ea[i]); + if (!r) { + damon_free_target(t); + kunit_skip(test, "region alloc fail"); + } + damon_add_region(r, t); + } + damon_split_regions_of(t, 4, 5); + KUNIT_EXPECT_LE(test, damon_nr_regions(t), 12u); + damon_for_each_region(r, t) { + KUNIT_EXPECT_GE(test, damon_sz_region(r) % 5ul, 0ul); } - damon_add_region(r, t); - damon_split_regions_of(t, 4, 1); - KUNIT_EXPECT_LE(test, damon_nr_regions(t), 4u); damon_free_target(t); } =20 @@ -574,9 +588,10 @@ static void damos_test_commit_quota_goal(struct kunit = *test) }); damos_test_commit_quota_goal_for(test, &dst, &(struct damos_quota_goal) { - .metric =3D DAMOS_QUOTA_USER_INPUT, - .target_value =3D 789, - .current_value =3D 12, + .metric =3D DAMOS_QUOTA_SOME_MEM_PSI_US, + .target_value =3D 234, + .current_value =3D 345, + .last_psi_total =3D 567, }); } =20 --=20 2.43.0