summaryrefslogtreecommitdiffstats
path: root/mm/damon/paddr.c
diff options
context:
space:
mode:
authorSeongJae Park <sj@kernel.org>2022-03-22 14:48:52 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2022-03-22 15:57:12 -0700
commit7752925fbc081f31bef6a410fb8a06830daaf460 (patch)
tree2171f05ecfe8d442b540f6010cb60959cb70b73c /mm/damon/paddr.c
parent9f7b053a0f6121f89e00d1688bfca0bf278caa25 (diff)
downloadlinux-7752925fbc081f31bef6a410fb8a06830daaf460.tar.bz2
mm/damon/paddr,vaddr: register themselves to DAMON in subsys_initcall
This commit makes the monitoring operations for the physical address space and virtual address spaces register themselves to DAMON in the subsys_initcall step. Later, in-kernel DAMON user code can use them via damon_select_ops() without have to unnecessarily depend on all possible monitoring operations implementations. Link: https://lkml.kernel.org/r/20220215184603.1479-4-sj@kernel.org Signed-off-by: SeongJae Park <sj@kernel.org> Cc: David Rientjes <rientjes@google.com> Cc: Xin Hao <xhao@linux.alibaba.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/damon/paddr.c')
-rw-r--r--mm/damon/paddr.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/mm/damon/paddr.c b/mm/damon/paddr.c
index 9f0abd0369bc..d968bb38bd5d 100644
--- a/mm/damon/paddr.c
+++ b/mm/damon/paddr.c
@@ -273,3 +273,23 @@ void damon_pa_set_operations(struct damon_ctx *ctx)
ctx->ops.apply_scheme = damon_pa_apply_scheme;
ctx->ops.get_scheme_score = damon_pa_scheme_score;
}
+
+static int __init damon_pa_initcall(void)
+{
+ struct damon_operations ops = {
+ .id = DAMON_OPS_PADDR,
+ .init = NULL,
+ .update = NULL,
+ .prepare_access_checks = damon_pa_prepare_access_checks,
+ .check_accesses = damon_pa_check_accesses,
+ .reset_aggregated = NULL,
+ .target_valid = damon_pa_target_valid,
+ .cleanup = NULL,
+ .apply_scheme = damon_pa_apply_scheme,
+ .get_scheme_score = damon_pa_scheme_score,
+ };
+
+ return damon_register_ops(&ops);
+};
+
+subsys_initcall(damon_pa_initcall);