mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 1/1] mm/damon/core: simplify minimum watermark wait time calculation
@ 2026-11-10  8:51 Adrian Huang (Lenovo)
  2026-11-10 15:39 ` SJ Park
  0 siblings, 1 reply; 2+ messages in thread
From: Adrian Huang (Lenovo) @ 2026-11-10  8:51 UTC (permalink / raw)
  To: SJ Park
  Cc: Andrew Morton, damon, linux-mm, linux-kernel, ahuang12,
	Adrian Huang (Lenovo)

The minimum watermark wait time calculation uses an additional boolean
variable, init_wait_time, to determine whether min_wait_time has been
initialized.

Simplify the logic by using list_is_first() to identify the first
scheme and initialize min_wait_time accordingly. Subsequent schemes
update min_wait_time only when their waiting intervals are shorter.

This removes the unnecessary boolean variable while preserving the
existing behavior, including the case where no schemes are configured.

Signed-off-by: Adrian Huang (Lenovo) <adrianhuang0701@gmail.com>
---
 mm/damon/core.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/mm/damon/core.c b/mm/damon/core.c
index d36823f4d092..93ec684a113c 100644
--- a/mm/damon/core.c
+++ b/mm/damon/core.c
@@ -3985,14 +3985,12 @@ static int kdamond_wait_activation(struct damon_ctx *ctx)
 
 	while (!kdamond_need_stop(ctx)) {
 		unsigned long min_wait_time = 0;
-		bool init_wait_time = false;
 
 		damon_for_each_scheme(s, ctx) {
 			wait_time = damos_wmark_wait_us(s);
-			if (!init_wait_time || wait_time < min_wait_time) {
-				init_wait_time = true;
+			if (list_is_first(&s->list, &ctx->schemes) ||
+			    wait_time < min_wait_time)
 				min_wait_time = wait_time;
-			}
 		}
 		if (!min_wait_time)
 			return 0;
-- 
2.43.0


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH 1/1] mm/damon/core: simplify minimum watermark wait time calculation
  2026-11-10  8:51 [PATCH 1/1] mm/damon/core: simplify minimum watermark wait time calculation Adrian Huang (Lenovo)
@ 2026-11-10 15:39 ` SJ Park
  0 siblings, 0 replies; 2+ messages in thread
From: SJ Park @ 2026-11-10 15:39 UTC (permalink / raw)
  To: Adrian Huang (Lenovo)
  Cc: SJ Park, Andrew Morton, damon, linux-mm, linux-kernel, ahuang12

Hello Adrian,

On Tue, 10 Nov 2026 16:51:32 +0800 "Adrian Huang (Lenovo)" <adrianhuang0701@gmail.com> wrote:

> The minimum watermark wait time calculation uses an additional boolean
> variable, init_wait_time, to determine whether min_wait_time has been
> initialized.
> 
> Simplify the logic by using list_is_first() to identify the first
> scheme and initialize min_wait_time accordingly. Subsequent schemes
> update min_wait_time only when their waiting intervals are shorter.
> 
> This removes the unnecessary boolean variable while preserving the
> existing behavior, including the case where no schemes are configured.
> 
> Signed-off-by: Adrian Huang (Lenovo) <adrianhuang0701@gmail.com>
> ---
>  mm/damon/core.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/mm/damon/core.c b/mm/damon/core.c
> index d36823f4d092..93ec684a113c 100644
> --- a/mm/damon/core.c
> +++ b/mm/damon/core.c
> @@ -3985,14 +3985,12 @@ static int kdamond_wait_activation(struct damon_ctx *ctx)
>  
>  	while (!kdamond_need_stop(ctx)) {
>  		unsigned long min_wait_time = 0;
> -		bool init_wait_time = false;
>  
>  		damon_for_each_scheme(s, ctx) {
>  			wait_time = damos_wmark_wait_us(s);
> -			if (!init_wait_time || wait_time < min_wait_time) {
> -				init_wait_time = true;
> +			if (list_is_first(&s->list, &ctx->schemes) ||
> +			    wait_time < min_wait_time)
>  				min_wait_time = wait_time;
> -			}

I implemented and used list handling wrappers like damon_for_each_scheme(), to
hide implementation details of data structures.  This change exposes some of
such details.  If we agree we have to remove init_wait_time, I'd prefer adding
a sort of damon_first_scheme() like wrapper.

But, init_wait_time really need to be removed?  I cannot show clear benefit of
removing it that justifies adding a new wrapper.  To someone or on some
evironments, init_wait_time might making the code too difficult to read or
inefficient (system having so small amount of memory?), though.  If not, I'd
suggest dropping this.

What do you think, Adrian?


Thanks,
SJ

[...]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-11-10 15:39 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-10  8:51 [PATCH 1/1] mm/damon/core: simplify minimum watermark wait time calculation Adrian Huang (Lenovo)
2026-11-10 15:39 ` SJ Park

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®