Writing a value to DAMON_RECLAIM and DAMON_LRU_SORT's 'enabled' parameters turns on or off DAMON in an ansychronous way. This means the parameter cannot be used to read the current status of them. 'kdamond_pid' parameter should be used instead for the purpose. The documentation is easy to be read as it works in a synchronous way, so it is a little bit confusing. It also makes the user space tooling dirty.
There's no real reason to have the asynchronous behavior, though. Simply make the parameter works synchronously, rather than updating the document.
The first and second patches changes the behavior of the 'enabled' parameter for DAMON_RECLAIM and adds a selftest for the changed behavior, respectively. Following two patches make the same changes for DAMON_LRU_SORT.
SeongJae Park (4): mm/damon/reclaim: enable and disable synchronously selftests/damon: add tests for DAMON_RECLAIM's enabled parameter mm/damon/lru_sort: enable and disable synchronously selftests/damon: add tests for DAMON_LRU_SORT's enabled parameter
mm/damon/lru_sort.c | 51 ++++++++++------------ mm/damon/reclaim.c | 53 ++++++++++------------- tools/testing/selftests/damon/Makefile | 1 + tools/testing/selftests/damon/lru_sort.sh | 41 ++++++++++++++++++ tools/testing/selftests/damon/reclaim.sh | 42 ++++++++++++++++++ 5 files changed, 129 insertions(+), 59 deletions(-) create mode 100755 tools/testing/selftests/damon/lru_sort.sh create mode 100755 tools/testing/selftests/damon/reclaim.sh