Commit 7752925f authored by SeongJae Park's avatar SeongJae Park Committed by Linus Torvalds
Browse files

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: 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 9f7b053a
Loading
Loading
Loading
Loading
+20 −0
Original line number Original line Diff line number Diff line
@@ -273,3 +273,23 @@ void damon_pa_set_operations(struct damon_ctx *ctx)
	ctx->ops.apply_scheme = damon_pa_apply_scheme;
	ctx->ops.apply_scheme = damon_pa_apply_scheme;
	ctx->ops.get_scheme_score = damon_pa_scheme_score;
	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);
+20 −0
Original line number Original line Diff line number Diff line
@@ -752,4 +752,24 @@ void damon_va_set_operations(struct damon_ctx *ctx)
	ctx->ops.get_scheme_score = damon_va_scheme_score;
	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"
#include "vaddr-test.h"