mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 04:18:39 +08:00
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>
This commit is contained in:
parent
9f7b053a0f
commit
7752925fbc
@ -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);
|
||||
|
@ -752,4 +752,24 @@ void damon_va_set_operations(struct damon_ctx *ctx)
|
||||
ctx->ops.get_scheme_score = damon_va_scheme_score;
|
||||
}
|
||||
|
||||
static int __init damon_va_initcall(void)
|
||||
{
|
||||
struct damon_operations ops = {
|
||||
.id = DAMON_OPS_VADDR,
|
||||
.init = damon_va_init,
|
||||
.update = damon_va_update,
|
||||
.prepare_access_checks = damon_va_prepare_access_checks,
|
||||
.check_accesses = damon_va_check_accesses,
|
||||
.reset_aggregated = NULL,
|
||||
.target_valid = damon_va_target_valid,
|
||||
.cleanup = NULL,
|
||||
.apply_scheme = damon_va_apply_scheme,
|
||||
.get_scheme_score = damon_va_scheme_score,
|
||||
};
|
||||
|
||||
return damon_register_ops(&ops);
|
||||
};
|
||||
|
||||
subsys_initcall(damon_va_initcall);
|
||||
|
||||
#include "vaddr-test.h"
|
||||
|
Loading…
Reference in New Issue
Block a user