[PATCH] sched/fair: simplify task_numa_find_cpu()

Yury Norov posted 1 patch 2 weeks, 6 days ago
kernel/sched/fair.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
[PATCH] sched/fair: simplify task_numa_find_cpu()
Posted by Yury Norov 2 weeks, 6 days ago
From: Yury Norov (NVIDIA) <yury.norov@gmail.com>

Use for_each_cpu_and() and drop some housekeeping code.

Signed-off-by: Yury Norov (NVIDIA) <yury.norov@gmail.com>
---
 kernel/sched/fair.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 0990ed90c14e..c48c0975fe7a 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -2474,11 +2474,8 @@ static void task_numa_find_cpu(struct task_numa_env *env,
 		maymove = !load_too_imbalanced(src_load, dst_load, env);
 	}
 
-	for_each_cpu(cpu, cpumask_of_node(env->dst_nid)) {
-		/* Skip this CPU if the source task cannot migrate */
-		if (!cpumask_test_cpu(cpu, env->p->cpus_ptr))
-			continue;
-
+	/* Skip CPUs if the source task cannot migrate */
+	for_each_cpu_and(cpu, cpumask_of_node(env->dst_nid), env->p->cpus_ptr) {
 		env->dst_cpu = cpu;
 		if (task_numa_compare(env, taskimp, groupimp, maymove))
 			break;
-- 
2.43.0
Re: [PATCH] sched/fair: simplify task_numa_find_cpu()
Posted by K Prateek Nayak 2 weeks, 6 days ago
Hello Yury,

On 9/12/2025 2:01 AM, Yury Norov wrote:
> From: Yury Norov (NVIDIA) <yury.norov@gmail.com>
> 
> Use for_each_cpu_and() and drop some housekeeping code.

Please feel free to include:

Reviewed-by: K Prateek Nayak <kprateek.nayak@amd.com>

> 
> Signed-off-by: Yury Norov (NVIDIA) <yury.norov@gmail.com>
> ---
>  kernel/sched/fair.c | 7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)
> 
> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
> index 0990ed90c14e..c48c0975fe7a 100644
> --- a/kernel/sched/fair.c
> +++ b/kernel/sched/fair.c
> @@ -2474,11 +2474,8 @@ static void task_numa_find_cpu(struct task_numa_env *env,
>  		maymove = !load_too_imbalanced(src_load, dst_load, env);
>  	}
>  
> -	for_each_cpu(cpu, cpumask_of_node(env->dst_nid)) {
> -		/* Skip this CPU if the source task cannot migrate */
> -		if (!cpumask_test_cpu(cpu, env->p->cpus_ptr))
> -			continue;
> -
> +	/* Skip CPUs if the source task cannot migrate */
> +	for_each_cpu_and(cpu, cpumask_of_node(env->dst_nid), env->p->cpus_ptr) {
>  		env->dst_cpu = cpu;
>  		if (task_numa_compare(env, taskimp, groupimp, maymove))
>  			break;

-- 
Thanks and Regards,
Prateek
Re: [PATCH] sched/fair: simplify task_numa_find_cpu()
Posted by Phil Auld 2 weeks, 6 days ago
On Thu, Sep 11, 2025 at 04:31:35PM -0400 Yury Norov wrote:
> From: Yury Norov (NVIDIA) <yury.norov@gmail.com>
> 
> Use for_each_cpu_and() and drop some housekeeping code.
> 
> Signed-off-by: Yury Norov (NVIDIA) <yury.norov@gmail.com>

The "housekeeping" part threw me off for a second. I was looking for
isolation related code being dropped :)


Reviewed-by: Phil Auld <pauld@redhat.com>


> ---
>  kernel/sched/fair.c | 7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)
> 
> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
> index 0990ed90c14e..c48c0975fe7a 100644
> --- a/kernel/sched/fair.c
> +++ b/kernel/sched/fair.c
> @@ -2474,11 +2474,8 @@ static void task_numa_find_cpu(struct task_numa_env *env,
>  		maymove = !load_too_imbalanced(src_load, dst_load, env);
>  	}
>  
> -	for_each_cpu(cpu, cpumask_of_node(env->dst_nid)) {
> -		/* Skip this CPU if the source task cannot migrate */
> -		if (!cpumask_test_cpu(cpu, env->p->cpus_ptr))
> -			continue;
> -
> +	/* Skip CPUs if the source task cannot migrate */
> +	for_each_cpu_and(cpu, cpumask_of_node(env->dst_nid), env->p->cpus_ptr) {
>  		env->dst_cpu = cpu;
>  		if (task_numa_compare(env, taskimp, groupimp, maymove))
>  			break;
> -- 
> 2.43.0
> 
> 

--