[PATCH] mm/damon/core: skip apply schemes if empty

From: Huaisheng Ye
Date: Mon Jan 16 2023 - 01:24:13 EST


Sometimes there is no scheme in damon's context, for example
just use damo record to monitor workload's data access pattern.

If current damon context doesn't have any scheme in the list,
kdamond has no need to iterate over list of all targets and regions
but do nothing.

So, skip apply schemes when ctx->schemes is empty.

Signed-off-by: Huaisheng Ye <huaisheng.ye@xxxxxxxxx>
---
mm/damon/core.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/mm/damon/core.c b/mm/damon/core.c
index ceec75b88ef9..f338691e4591 100644
--- a/mm/damon/core.c
+++ b/mm/damon/core.c
@@ -1230,7 +1230,8 @@ static int kdamond_fn(void *data)
if (ctx->callback.after_aggregation &&
ctx->callback.after_aggregation(ctx))
break;
- kdamond_apply_schemes(ctx);
+ if (!list_empty(&ctx->schemes))
+ kdamond_apply_schemes(ctx);
kdamond_reset_aggregated(ctx);
kdamond_split_regions(ctx);
if (ctx->ops.reset_aggregated)
--
2.31.1