Implement minor improvements on code readability and tests for DAMON.
First seven patches are for DAMON code readability and resulting
maintenance. Patches 1 and 2 make damon_set_regions() safer and easier
to read. Patches 3 and 4 remove fragmented DAMON API use cases. Patches
5-7 hides unused core functions that are unnecessarily exposed to API
callers.
The following seven patches are for DAMON tests improvement. Patches 8
and 9 adds and removes DAMON_DEBUG_SANITY verifications to ensure
reasonable test coverage without too high overhead. Patch 10 adds a new
kunit test for damon_set_regions(). Patch 11 makes sysfs.py selftest
more gracefully finishes under test failures. Patches 12-13 adds simple
sysfs.sh test cases for the monitoring intervals goal directory, the
addr_unit file and the pause file.
Changes from RFC v1.1
- RFC v1.1: https://lore.kernel.org/20260521035349.87565-1-sj@kernel.org
- Free DAMON target in vaddr unit test fail-out path.
Changes from RFC v1
- RFC v1: https://lore.kernel.org/20260520062858.167011-1-sj@kernel.org
- Handle damon_set_regions() failure in vaddr unit test.
- Free ranges array in vaddr unit test.
- Fix wrong region address verification.
- Fix typos in selftest: s/exit/exist/
SeongJae Park (14):
mm/damon/core: safely handle no region case in damon_set_regions()
mm/damon/core: do not use region out of a loop in damon_set_regions()
samples/damon/mtier: replace damon_add_region() with
damon_set_regions()
mm/damon/tests/vaddr-kunit: replace damon_add_region() with
damon_set_regions()
mm/damon/core: hide damon_add_region()
mm/damon/core: hide damon_insert_region()
mm/damon/core: hide damon_destroy_region()
mm/damon/core: add kdamond_call() debug_sanity check
mm/damon/core: remove damon_verify_nr_regions()
mm/damon/tests/core-kunit: add damon_set_regions() test cases
selftests/damon/sysfs.py: stop kdamonds before failing
selftests/damon/sysfs.sh: test monitoring intervals goal dir
selftests/damon/sysfs.sh: test addr_unit file existence
selftests/damon/sysfs.sh: test pause file existence
include/linux/damon.h | 13 ---
mm/damon/core.c | 92 ++++++++++++----
mm/damon/tests/core-kunit.h | 142 +++++++++++++++++++++----
mm/damon/tests/vaddr-kunit.h | 27 +++--
samples/damon/mtier.c | 10 +-
tools/testing/selftests/damon/sysfs.py | 4 +
tools/testing/selftests/damon/sysfs.sh | 14 +++
7 files changed, 233 insertions(+), 69 deletions(-)
base-commit: ac6b83c7bf3671e8ff0d541cf03e6eaeed00a79e
--
2.47.3