From: SeongJae Park Date: Thu, 6 Mar 2025 17:58:57 +0000 (-0800) Subject: mm/damon/core: invoke kdamond_call() after merging is done if possible X-Git-Tag: v6.15-rc1~81^2~84 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bf74bdfd2edb60ab44b48a6ef705207dc889dc3d;p=thirdparty%2Flinux.git mm/damon/core: invoke kdamond_call() after merging is done if possible kdamond_call() callers may iterate the regions, so better to call it when the number of regions is as small as possible. It is when kdamond_merge_regions() is finished. Invoke it on the point. This change is also aimed to make future changes for carrying online parameters commit with damon_call() easier. The commit operation should be able to make sequence between other aggregation interval based operations including regioins merging and aggregation reset. Placing damon_call() invocation after the regions merging makes the sequence handling simpler. Link: https://lkml.kernel.org/r/20250306175908.66300-3-sj@kernel.org Signed-off-by: SeongJae Park Signed-off-by: Andrew Morton --- diff --git a/mm/damon/core.c b/mm/damon/core.c index ebbb228404352..b9a9db1a90b43 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -2421,7 +2421,6 @@ static int kdamond_fn(void *data) if (ctx->callback.after_sampling && ctx->callback.after_sampling(ctx)) break; - kdamond_call(ctx, false); kdamond_usleep(sample_interval); ctx->passed_sample_intervals++; @@ -2439,9 +2438,10 @@ static int kdamond_fn(void *data) } /* - * do kdamond_apply_schemes() after kdamond_merge_regions() if - * possible, to reduce overhead + * do kdamond_call() and kdamond_apply_schemes() after + * kdamond_merge_regions() if possible, to reduce overhead */ + kdamond_call(ctx, false); if (!list_empty(&ctx->schemes)) kdamond_apply_schemes(ctx); else