[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <72d087b8-1af1-44a6-88c4-04a9ff98f660@gmail.com>
Date: Fri, 5 Sep 2025 09:12:46 +0800
From: Ethan Zhao <etzhao1900@...il.com>
To: Jianyong Wu <wujianyong@...on.cn>
Cc: jianyong.wu@...look.com, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] sched/fair: fix task_numa_migrate to consider both task
and group benefits
On 8/29/2025 4:55 PM, Jianyong Wu wrote:
> The comment indicates that when searching for a suitable NUMA node, we
> should ensure that the selected node benefits both the task and its NUMA
> group. However, the current implementation can only guarantee that either
> the task or the group benefits, but not necessarily both.
>
> Signed-off-by: Jianyong Wu <wujianyong@...on.cn>
> ---
> kernel/sched/fair.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
> index b173a059315c..58c899738399 100644
> --- a/kernel/sched/fair.c
> +++ b/kernel/sched/fair.c
> @@ -2568,7 +2568,7 @@ static int task_numa_migrate(struct task_struct *p)
> /* Only consider nodes where both task and groups benefit */
> taskimp = task_weight(p, nid, dist) - taskweight;
> groupimp = group_weight(p, nid, dist) - groupweight;
> - if (taskimp < 0 && groupimp < 0)
> + if (taskimp < 0 || groupimp < 0)
Perhaps you misunderstand the comment, && means either the task or the
group has NO benefit from this migration, it wouldn't be done.
But if you replace it with ||, you will ignore the target node that
could benefit either the task or the group.
There is more logic to consider the benefit for both task & group
in the later function part.
One question, why not
if (taskimp <= 0 && groupimp <= 0) ?
Thanks,
Ethan
> continue;
>
> env.dist = dist;
Powered by blists - more mailing lists