diff mbox series

mm/damon/core: skip apply schemes if empty

Message ID 20230116062347.1148553-1-huaisheng.ye@intel.com (mailing list archive)
State New
Headers show
Series mm/damon/core: skip apply schemes if empty | expand

Commit Message

Huaisheng Ye Jan. 16, 2023, 6:23 a.m. UTC
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@intel.com>
---
 mm/damon/core.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

SeongJae Park Jan. 16, 2023, 5:31 p.m. UTC | #1
Hi Huaisheng,

On Mon, 16 Jan 2023 14:23:47 +0800 Huaisheng Ye <huaisheng.ye@intel.com> wrote:

> 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.

Good finding, thanks!

> 
> Signed-off-by: Huaisheng Ye <huaisheng.ye@intel.com>

Reviewed-by: SeongJae Park <sj@kernel.org>


Thanks,
SJ

> ---
>  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
> 
>
diff mbox series

Patch

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)