[RFC PATCH 11/14] selftests/damon/sysfs.py: stop kdamonds before failing

From: SeongJae Park

Date: Wed May 20 2026 - 02:34:45 EST


When an assertion is failed, sysfs.py DAMON selftest immediately exits
the test program leaving the DAMON running behind. Many of the
following tests need to start DAMON on their own. But because DAMON
that was started by sysfs.py is still running, those start attempts
fail, and the tests are failed or skipped. Update sysfs.py to stop
DAMON before exiting the test program due to the assertion failure.

Signed-off-by: SeongJae Park <sj@xxxxxxxxxx>
---
tools/testing/selftests/damon/sysfs.py | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/tools/testing/selftests/damon/sysfs.py b/tools/testing/selftests/damon/sysfs.py
index cd4d82c852113..aa03a1187489f 100755
--- a/tools/testing/selftests/damon/sysfs.py
+++ b/tools/testing/selftests/damon/sysfs.py
@@ -24,9 +24,12 @@ def dump_damon_status_dict(pid):
except Exception as e:
return None, 'json.load fail (%s)' % e

+kdamonds = None
def fail(expectation, status):
print('unexpected %s' % expectation)
print(json.dumps(status, indent=4))
+ if kdamonds is not None:
+ kdamonds.stop()
exit(1)

def assert_true(condition, expectation, status):
@@ -248,6 +251,7 @@ def assert_ctxs_committed(kdamonds):
ctx.pause = False

def main():
+ global kdamonds
kdamonds = _damon_sysfs.Kdamonds(
[_damon_sysfs.Kdamond(
contexts=[_damon_sysfs.DamonCtx(
--
2.47.3