When kdamond_fn() completes, the targets are kept. Those are kept to
let callers do additional cleanups if they need. There are no such
additional cleanups though. DAMON sysfs interface deallocates those in
before_terminate() callback, to reduce unnecessary memory usage, for
[f]vaddr use case. Just destroy the targets for every case in the core
layer. This saves more memory and simplifies the logic.
Signed-off-by: SeongJae Park <sj@kernel.org>
---
mm/damon/core.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/mm/damon/core.c b/mm/damon/core.c
index 9554743dc992..ffd1a061c2cb 100644
--- a/mm/damon/core.c
+++ b/mm/damon/core.c
@@ -2657,6 +2657,7 @@ static int kdamond_fn(void *data)
running_exclusive_ctxs = false;
mutex_unlock(&damon_lock);
+ damon_destroy_targets(ctx);
return 0;
}
--
2.39.5