From nobody Mon Oct 6 15:12:20 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7133D23E25B; Sun, 20 Jul 2025 17:17:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753031839; cv=none; b=CMx3d/wOM8kb7aRH3ajbu3cK03mz/a69R3tUtRhkFjnTuqs2j0WrxQXqL10yKJB/OKbeSrWDK2kH+hgvFJ4JSB9J+UQlMTX1+NGYFnYAxr9/i8CLtawuMXzPLnOKf2b8NsDxFb2KqOydGdgJZ0Qi2A8wvkh+COTF7T2Y/2PJ838= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753031839; c=relaxed/simple; bh=YYPpAhV0Q2sUhsH9Nl2X69H/hWtTyYi5oXTnfRZyejg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=JWmsEFmTz4j1Jvk2nh71CO4v8l/9Bl5q2hT+NC0Pp/YgslpP/fDSIKh6uk9bmJ5nYosFA8nxAlnlt2ROSL+iWb59amkR7HoWh3xBusfuMOAFznsg0sTE+GEx7I3UffdhlhMt+7KLGE7fX4lCzo6wyqxIHswCzAJ6LrKPBrErK0E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=T32J1KG3; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="T32J1KG3" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 03BE9C4CEF6; Sun, 20 Jul 2025 17:17:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1753031839; bh=YYPpAhV0Q2sUhsH9Nl2X69H/hWtTyYi5oXTnfRZyejg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=T32J1KG3uKsQ7UQl9LfjeFQlf85s4pehoO+UGWx4bBQY5nRlmlN7qO7KZMvfRS7b4 4dyMO2jM4w5lpwytCR171X8m6M3iBllFkbxljGFr94yNppi4LwPw6nBrPm1SCl401c oXko3CDFXijQidbmNpWM9DHGgp6U7q6LlAMY2B1/7Trb0VSVKZFfhY/6yGUKSsVMVI Z46Yra/A0pLVf690EfSxbr1GEnv4SnQY7bwgwemQM1MOlReu/8Xc+t4iXxEyG2TCuJ SvCShf6pZyk4pbje9MQdawVE3M4ZM5D6SuJSyal8mvVhx8x3Ct8msgKY8Ogv5qxGWx Jk/7MeoDM5kZg== From: SeongJae Park To: Andrew Morton Cc: SeongJae Park , Shuah Khan , damon@lists.linux.dev, kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 21/22] selftests/damon/sysfs.py: test non-default parameters runtime commit Date: Sun, 20 Jul 2025 10:16:51 -0700 Message-Id: <20250720171652.92309-22-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250720171652.92309-1-sj@kernel.org> References: <20250720171652.92309-1-sj@kernel.org> 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" sysfs.py is testing only the default and minimum DAMON parameters. Add another test case for more non-default additional DAMON parameters commitment on runtime. Signed-off-by: SeongJae Park --- tools/testing/selftests/damon/sysfs.py | 53 ++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/tools/testing/selftests/damon/sysfs.py b/tools/testing/selftes= ts/damon/sysfs.py index 429865e5ac9c..b2cb178dda15 100755 --- a/tools/testing/selftests/damon/sysfs.py +++ b/tools/testing/selftests/damon/sysfs.py @@ -194,6 +194,59 @@ def main(): =20 assert_ctxs_committed(kdamonds.kdamonds[0].contexts, status['contexts'= ]) =20 + context =3D _damon_sysfs.DamonCtx( + monitoring_attrs=3D_damon_sysfs.DamonAttrs( + sample_us=3D100000, aggr_us=3D2000000, + intervals_goal=3D_damon_sysfs.IntervalsGoal( + access_bp=3D400, aggrs=3D3, min_sample_us=3D5000, + max_sample_us=3D10000000), + update_us=3D2000000), + schemes=3D[_damon_sysfs.Damos( + action=3D'pageout', + access_pattern=3D_damon_sysfs.DamosAccessPattern( + size=3D[4096, 2**10], + nr_accesses=3D[3, 317], + age=3D[5,71]), + quota=3D_damon_sysfs.DamosQuota( + sz=3D100*1024*1024, ms=3D100, + goals=3D[_damon_sysfs.DamosQuotaGoal( + metric=3D'node_mem_used_bp', + target_value=3D9950, + nid=3D1)], + reset_interval_ms=3D1500, + weight_sz_permil=3D20, + weight_nr_accesses_permil=3D200, + weight_age_permil=3D1000), + watermarks=3D_damon_sysfs.DamosWatermarks( + metric =3D 'free_mem_rate', interval =3D 500000, # 500= ms + high =3D 500, mid =3D 400, low =3D 50), + target_nid=3D1, + apply_interval_us=3D1000000, + dests=3D_damon_sysfs.DamosDests( + dests=3D[_damon_sysfs.DamosDest(id=3D1, weight=3D30), + _damon_sysfs.DamosDest(id=3D0, weight=3D70)]), + core_filters=3D[ + _damon_sysfs.DamosFilter(type_=3D'addr', matching=3DTr= ue, + allow=3DFalse, addr_start=3D4= 2, + addr_end=3D4242), + ], + ops_filters=3D[ + _damon_sysfs.DamosFilter(type_=3D'anon', matching=3DTr= ue, + allow=3DTrue), + ], + )]) + context.idx =3D 0 + context.kdamond =3D kdamonds.kdamonds[0] + kdamonds.kdamonds[0].contexts =3D [context] + kdamonds.kdamonds[0].commit() + + status, err =3D dump_damon_status_dict(kdamonds.kdamonds[0].pid) + if err is not None: + print(err) + exit(1) + + assert_ctxs_committed(kdamonds.kdamonds[0].contexts, status['contexts'= ]) + kdamonds.stop() =20 if __name__ =3D=3D '__main__': --=20 2.39.5