Commit da7aaca0 authored by SeongJae Park's avatar SeongJae Park Committed by Linus Torvalds

mm/damon/dbgfs: use damon_select_ops() instead of damon_{v,p}a_set_operations()

This commit makes DAMON debugfs interface to select the registered
monitoring operations for the physical address space or virtual address
spaces depending on user requests instead of setting it on its own.  Note
that DAMON debugfs interface is still dependent to DAMON_VADDR with this
change, because it is also using its symbol, 'damon_va_target_valid'.

Link: https://lkml.kernel.org/r/20220215184603.1479-6-sj@kernel.orgSigned-off-by: default avatarSeongJae Park <sj@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Xin Hao <xhao@linux.alibaba.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 4d69c345
...@@ -474,12 +474,18 @@ static ssize_t dbgfs_target_ids_write(struct file *file, ...@@ -474,12 +474,18 @@ static ssize_t dbgfs_target_ids_write(struct file *file,
/* remove previously set targets */ /* remove previously set targets */
dbgfs_set_targets(ctx, 0, NULL); dbgfs_set_targets(ctx, 0, NULL);
if (!nr_targets) {
ret = count;
goto unlock_out;
}
/* Configure the context for the address space type */ /* Configure the context for the address space type */
if (id_is_pid) if (id_is_pid)
damon_va_set_operations(ctx); ret = damon_select_ops(ctx, DAMON_OPS_VADDR);
else else
damon_pa_set_operations(ctx); ret = damon_select_ops(ctx, DAMON_OPS_PADDR);
if (ret)
goto unlock_out;
ret = dbgfs_set_targets(ctx, nr_targets, target_pids); ret = dbgfs_set_targets(ctx, nr_targets, target_pids);
if (!ret) if (!ret)
...@@ -735,7 +741,11 @@ static struct damon_ctx *dbgfs_new_ctx(void) ...@@ -735,7 +741,11 @@ static struct damon_ctx *dbgfs_new_ctx(void)
if (!ctx) if (!ctx)
return NULL; return NULL;
damon_va_set_operations(ctx); if (damon_select_ops(ctx, DAMON_OPS_VADDR) && damon_select_ops(ctx,
DAMON_OPS_PADDR)) {
damon_destroy_ctx(ctx);
return NULL;
}
ctx->callback.before_terminate = dbgfs_before_terminate; ctx->callback.before_terminate = dbgfs_before_terminate;
return ctx; return ctx;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment