From nobody Sat Feb 7 10:44:07 2026 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 36B042D8362; Sat, 18 Oct 2025 20:44:52 +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=1760820293; cv=none; b=QHMoCFdfnc/pIb8cJUQGXRyJwgco8eRIPhrrKCJ8MEyN3mgaOy0wZwSxKerBsOAldqdgzG3X/nF7Bypn7o491M9wfnOuc+mwm3FHwT9nJ4Tpesu5f+BGG0WjEq9zuJBztQh2Ym8faoo09KQ8oKWDccTiD6xgTepYrrFIcUcs6QM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760820293; c=relaxed/simple; bh=S4lW4Yt0S7MkHRb5GuM0MpYSg8IJozn8ecS6DJPFv08=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PVb2LglC2WdMsMFOXlkoTA/4FvQI+o1YZMmP8zwlZ1HLW9upxOnWN/JXg2xDR0txR6Tvwub69Sj8s0Qt+aDJulekY/5tQKBdPl7EElYqJIsYT5rqe/mojwRrInb0uU2sUc4/KiTuia8N0dM1+zpGYgR1l4guJ+/t9wPXdJgnaTs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=DqXsi/52; 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="DqXsi/52" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6D96FC4CEFE; Sat, 18 Oct 2025 20:44:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1760820292; bh=S4lW4Yt0S7MkHRb5GuM0MpYSg8IJozn8ecS6DJPFv08=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DqXsi/52g5a5C4pINsXt4g4P/sejZ00AhNJflJ/NDCRkGGHM6Wo1b4RBxlcaJU3mp 3Qzyq8DIZRrbii3iw7BY/KyIObXLJtaRZ3zSV9gltUis/hoWGq2Ixan/X8kidTGNjX Ez4IRFb4PzV5170Fs0vN/yWoglJJgf8x5Lzh2aLgHxcgtTm0OSJ2nlH4cNo8sPyZog p6V3+s3CYVt/dr4+x8XMe2BarNkBFCQuv53m6pSc0yVbkur2G+dLxGhB5l0jH1FHSd SZfIB/dJiMA6QYK7p+hvcUTaoL1VFxceXBC25QoJlFEEqo+nrNpZuKhLFLCI+LW2u9 zHPEz7x7FxxoQ== From: SeongJae Park To: Cc: SeongJae Park , Andrew Morton , Bijan Tabatabai , Shuah Khan , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH 1/4] selftests/damon/_damon_sysfs: support obsolete_target file Date: Sat, 18 Oct 2025 13:44:42 -0700 Message-ID: <20251018204448.8906-2-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251018204448.8906-1-sj@kernel.org> References: <20251018204448.8906-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" A DAMON sysfs file, namely obsolete_target, has newly introduced. Add a support of that file to _damon_sysfs.py so that DAMON selftests for the file can be easily written. Signed-off-by: SeongJae Park --- tools/testing/selftests/damon/_damon_sysfs.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/damon/_damon_sysfs.py b/tools/testing/= selftests/damon/_damon_sysfs.py index a0e6290833fb..748778b563cd 100644 --- a/tools/testing/selftests/damon/_damon_sysfs.py +++ b/tools/testing/selftests/damon/_damon_sysfs.py @@ -475,12 +475,14 @@ class Damos: =20 class DamonTarget: pid =3D None + obsolete =3D None # todo: Support target regions if test is made idx =3D None context =3D None =20 - def __init__(self, pid): + def __init__(self, pid, obsolete=3DFalse): self.pid =3D pid + self.obsolete =3D obsolete =20 def sysfs_dir(self): return os.path.join( @@ -491,8 +493,13 @@ class DamonTarget: os.path.join(self.sysfs_dir(), 'regions', 'nr_regions'), '= 0') if err is not None: return err - return write_file( + err =3D write_file( os.path.join(self.sysfs_dir(), 'pid_target'), self.pid) + if err is not None: + return err + return write_file( + os.path.join(self.sysfs_dir(), 'obsolete_target'), + 'Y' if self.obsolete else 'N') =20 class IntervalsGoal: access_bp =3D None --=20 2.47.3 From nobody Sat Feb 7 10:44:07 2026 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 36A4D2D7D2E; Sat, 18 Oct 2025 20:44:52 +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=1760820293; cv=none; b=H9dtXr8a9RbrnlbLSHsUhSBRoxKErKbYp4sFj94OifNUTxpEB/06VOqk3GJCLKPGXtqS0lmitbYQ+1d0m5dur4P2yB7Ji7i4WJU7CLXfTfh/dAjOzrtMDwzAE387NYYg37jh6QDgpPO66FGRDY9kUzxC0MPVuBp/kB8LxG50oaA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760820293; c=relaxed/simple; bh=bP4f3Y9B2E5+Lr10DKBGnctYdQ3B9BDoxl8h6OwnfKI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=I2nXGAbT+rtmGeMBKvDVLWCqZJS39urY9YCynmCA5hoXo+n9MEslWSR+3QbwTyQFtTZvzT1ynvsxOf6KSk580iSSCBlfZoJuCrK7c2RJv5I1gF8nAq4mtCi8JW4RbPH5MBgwfQ/MqSmzKbQmwLbhQchuEMzAzcqGRfjgedzlZ0s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=L5YXq7PB; 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="L5YXq7PB" Received: by smtp.kernel.org (Postfix) with ESMTPSA id ACC6BC4AF0C; Sat, 18 Oct 2025 20:44:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1760820292; bh=bP4f3Y9B2E5+Lr10DKBGnctYdQ3B9BDoxl8h6OwnfKI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=L5YXq7PB1giOnU7iYNgo/idI8CvROxrbR7jU7M0CFA1qnN+VQdIQSz/24Mf0uTOOy /i4Qx+PgMTJFYi1wVBQBwxN30Yp48QF3P2uqbNrAjnLdccxUTnNdZGZfnF9PMy+cJe fYQTRCk29XxiP2D+OXmw7RbFtJB4X1ZxeTC6ozIDGibAoYdRrefq+luzycLCEXouBi ADrjE4f7aQVKLX7bgek+c33B6izgCfPCDB7BMEt+PqjYnkeIi0mJTU+md3EfRJ0/Lh vEOR//vczr2Em5IAGkvoF7F/3SJEcamRTXlW8Jecj+XzMqmAMYrXR3QFSkidd5jl4W Ox8byEWMuqG8A== From: SeongJae Park To: Cc: SeongJae Park , Andrew Morton , Bijan Tabatabai , Shuah Khan , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH 2/4] drgn_dump_damon_status: dump damon_target->obsolete Date: Sat, 18 Oct 2025 13:44:43 -0700 Message-ID: <20251018204448.8906-3-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251018204448.8906-1-sj@kernel.org> References: <20251018204448.8906-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" A new field of damon_target for pin-point target removal, namely obsolete has newly been added. Extend drgn_dump_damon_status.py to dump it, for easily writing a future DAMON selftests of it. Signed-off-by: SeongJae Park --- tools/testing/selftests/damon/drgn_dump_damon_status.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/testing/selftests/damon/drgn_dump_damon_status.py b/tool= s/testing/selftests/damon/drgn_dump_damon_status.py index 7233369a3a44..cb4fdbe68acb 100755 --- a/tools/testing/selftests/damon/drgn_dump_damon_status.py +++ b/tools/testing/selftests/damon/drgn_dump_damon_status.py @@ -73,6 +73,7 @@ def target_to_dict(target): ['pid', int], ['nr_regions', int], ['regions_list', regions_to_list], + ['obsolete', bool], ]) =20 def targets_to_list(targets): --=20 2.47.3 From nobody Sat Feb 7 10:44:07 2026 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 692322D94A4; Sat, 18 Oct 2025 20:44:53 +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=1760820293; cv=none; b=o6mqlpx8CyoTaKA86R/7Pxn5UAQiKAaXg4+dV4WpzMOMuVJ/fkK/MJ8reCGlBqzFv70//hWDx9j39wdaUr9csBju7opsGi3dfyc2J0Ox2A7u0vfdKKcNSjmE2nBFnFAxouz+Ph4akdjePRR8X46P1UPBvJFc6q2sZEL55nP+uos= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760820293; c=relaxed/simple; bh=JDAR5vBDfrQKj9l07eWZCbXqGebT8PFUKr3f9iHJS+U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=G6Z7OYbbhp1EOJd29luNKmbvyXJQhGo6hwkT8fOOlWsECH2J/CWbZcp7E1lzGTTJgKl8nY3ZwvGYbRW692PxBsq1IvP/nOtsZ5wDjncfVpsj+1UpyqkwM8a+SyxfqNDoSNREkiR1a1F4uxUfnN23+SxLb/OdcpgrcHHMlzt282Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=FDYx4y6w; 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="FDYx4y6w" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EBBCFC116B1; Sat, 18 Oct 2025 20:44:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1760820293; bh=JDAR5vBDfrQKj9l07eWZCbXqGebT8PFUKr3f9iHJS+U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FDYx4y6wSdB04oRFCmuLkrqCOm3Fdh8tM9f3mb5PxueJPZaw3cNorfkUUjXq3urLg rDb2Tc+3mneR9llm1GcWC8cykf95pS34V1lznO4Fg0mY+vwnvWE75g7wNVHTPFTYvY OBpUeWqpKSiInr6pk+r6ZIRj6JV8O2DL2wiMr312gb9eYm5KC8b3Wr+HC9tlJCpfNk qmtwKre01Sj23dLd0x7T3Q5mgi8UkQT4IUd77sqYhuXR+7n5WMkY+7LQbqA77Q3jZY ZXCR7lZgxHbg/WIEVZCGMM7VnS9CwlHAlTLDrf3NC6paaJ42GTHSvt9WdHtGVHFslT rqedKtWmBI8NQ== From: SeongJae Park To: Cc: SeongJae Park , Andrew Morton , Bijan Tabatabai , Shuah Khan , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH 3/4] sysfs.py: extend assert_ctx_committed() for monitoring targets Date: Sat, 18 Oct 2025 13:44:44 -0700 Message-ID: <20251018204448.8906-4-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251018204448.8906-1-sj@kernel.org> References: <20251018204448.8906-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" assert_ctx_committed() is not asserting monitoring targets commitment, since all existing callers of the function assumes no target changes. Extend it for future usage. Signed-off-by: SeongJae Park --- tools/testing/selftests/damon/sysfs.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tools/testing/selftests/damon/sysfs.py b/tools/testing/selftes= ts/damon/sysfs.py index 2666c6f0f1a5..fd8d3698326e 100755 --- a/tools/testing/selftests/damon/sysfs.py +++ b/tools/testing/selftests/damon/sysfs.py @@ -164,6 +164,16 @@ def assert_monitoring_attrs_committed(attrs, dump): assert_true(dump['max_nr_regions'] =3D=3D attrs.max_nr_regions, 'max_nr_regions', dump) =20 +def assert_monitoring_target_committed(target, dump): + # target.pid is the pid "number", while dump['pid'] is 'struct pid' + # pointer, and hence cannot be compared. + assert_true(dump['obsolete'] =3D=3D target.obsolete, 'target obsolete'= , dump) + +def assert_monitoring_targets_committed(targets, dump): + assert_true(len(targets) =3D=3D len(dump), 'len_targets', dump) + for idx, target in enumerate(targets): + assert_monitoring_target_committed(target, dump[idx]) + def assert_ctx_committed(ctx, dump): ops_val =3D { 'vaddr': 0, @@ -172,6 +182,7 @@ def assert_ctx_committed(ctx, dump): } assert_true(dump['ops']['id'] =3D=3D ops_val[ctx.ops], 'ops_id', dump) assert_monitoring_attrs_committed(ctx.monitoring_attrs, dump['attrs']) + assert_monitoring_targets_committed(ctx.targets, dump['adaptive_target= s']) assert_schemes_committed(ctx.schemes, dump['schemes']) =20 def assert_ctxs_committed(ctxs, dump): --=20 2.47.3 From nobody Sat Feb 7 10:44:07 2026 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 AF36A2DC32A; Sat, 18 Oct 2025 20:44:53 +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=1760820293; cv=none; b=tHdMQEfA/d/aS3h58MJegir9uAnNYZa66+PrgtZ2KQpyrIGervHOnzypwqlivwtZcWgBvcM6RQgmNIT2jSMjqMblCmeB3HiaoRbCjXqZr9iNXNOJKW6HhfBFZGF7w0NO41Medr6evK059V1eGpjOVEC2Etlu9PRWG4aslzZhI1s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760820293; c=relaxed/simple; bh=mizIUChAFsqpIHY6nU9Fx3Ot5p8OeQz4ge3WLnGs1IU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WF2Jsdnf6hlSUDONhr2T0pWsCVoQBmxMyJiUEENMj0gLyVZ0Ra8UtqMeGDiuzOhMBnUbg/PIWEE89WPtulVHZgn/EcFRBrZ1D7aLybOnOjAgqH0nANsAH/rBcewc+MwHTpfvhw3CS3Zp7PbgqvRU3LC1uiu6YiUYJlc3NLR0mXo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Tz4vjciH; 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="Tz4vjciH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 35164C116D0; Sat, 18 Oct 2025 20:44:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1760820293; bh=mizIUChAFsqpIHY6nU9Fx3Ot5p8OeQz4ge3WLnGs1IU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Tz4vjciHPBEgfaX0+unXfY0pbZzsgdubL0xREO960MitKSNo2qjvSeprQbr0KDQDa ppYb90xfdAuxt9ZFBXz7sY6oAPlkEXN3li/QaiuGOqm42LMPxif5zkfCYsy2oXMjqx +Mlc0NS27oc3EM5T3Zr0Vp9JJRWo69rdYMo7RLYvBK1Av71FctMfjRe0jMvEphocwL UETH5IWUq0i4A1qRLJsrHI6M47syyAaAsUjMQDTa+5V3Bl/PFFw2bEA1TgVxPI2LNv JXvdJuDg+nAapHXSGEnkMYIaisS5+hoC20rx2jKjVlA9tnC+4J1wsx5vfD0aFl9rC1 xy0HB2Ep75THQ== From: SeongJae Park To: Cc: SeongJae Park , Andrew Morton , Bijan Tabatabai , Shuah Khan , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH 4/4] selftests/damon/sysfs: add obsolete_target test Date: Sat, 18 Oct 2025 13:44:45 -0700 Message-ID: <20251018204448.8906-5-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251018204448.8906-1-sj@kernel.org> References: <20251018204448.8906-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" A new DAMON sysfs file for pin-point target removal, namely obsolete_target, has been added. Add a test for the functionality. It starts DAMON with three monitoring target processes, mark one in the middle as obsolete, commit it, and confirm the internal DAMON status is updated to remove the target in the middle. Signed-off-by: SeongJae Park --- tools/testing/selftests/damon/sysfs.py | 37 ++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/tools/testing/selftests/damon/sysfs.py b/tools/testing/selftes= ts/damon/sysfs.py index fd8d3698326e..b34aea0a6775 100755 --- a/tools/testing/selftests/damon/sysfs.py +++ b/tools/testing/selftests/damon/sysfs.py @@ -279,5 +279,42 @@ def main(): =20 kdamonds.stop() =20 + # test obsolete_target. + proc1 =3D subprocess.Popen(['sh'], stdout=3Dsubprocess.PIPE, + stderr=3Dsubprocess.PIPE) + proc2 =3D subprocess.Popen(['sh'], stdout=3Dsubprocess.PIPE, + stderr=3Dsubprocess.PIPE) + proc3 =3D subprocess.Popen(['sh'], stdout=3Dsubprocess.PIPE, + stderr=3Dsubprocess.PIPE) + kdamonds =3D _damon_sysfs.Kdamonds( + [_damon_sysfs.Kdamond( + contexts=3D[_damon_sysfs.DamonCtx( + ops=3D'vaddr', + targets=3D[ + _damon_sysfs.DamonTarget(pid=3Dproc1.pid), + _damon_sysfs.DamonTarget(pid=3Dproc2.pid), + _damon_sysfs.DamonTarget(pid=3Dproc3.pid), + ], + schemes=3D[_damon_sysfs.Damos()], + )])]) + err =3D kdamonds.start() + if err is not None: + print('kdamond start failed: %s' % err) + exit(1) + kdamonds.kdamonds[0].contexts[0].targets[1].obsolete =3D True + kdamonds.kdamonds[0].commit() + + status, err =3D dump_damon_status_dict(kdamonds.kdamonds[0].pid) + if err is not None: + print(err) + kdamonds.stop() + exit(1) + + del kdamonds.kdamonds[0].contexts[0].targets[1] + + assert_ctxs_committed(kdamonds.kdamonds[0].contexts, status['contexts'= ]) + + kdamonds.stop() + if __name__ =3D=3D '__main__': main() --=20 2.47.3