[PATCH 3/4] sched/fair: move call to list_last_entry() in detach_tasks

Vincent Guittot posted 4 patches 3 years, 7 months ago
[PATCH 3/4] sched/fair: move call to list_last_entry() in detach_tasks
Posted by Vincent Guittot 3 years, 7 months ago
Move the call to list_last_entry() in detach_tasks() after testing
loop_max and loop_break.

Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
---
 kernel/sched/fair.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 6972a1a29a48..260a55ac462f 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -8047,8 +8047,6 @@ static int detach_tasks(struct lb_env *env)
 		if (env->idle != CPU_NOT_IDLE && env->src_rq->nr_running <= 1)
 			break;
 
-		p = list_last_entry(tasks, struct task_struct, se.group_node);
-
 		env->loop++;
 		/*
 		 * We've more or less seen every task there is, call it quits
@@ -8065,6 +8063,8 @@ static int detach_tasks(struct lb_env *env)
 			break;
 		}
 
+		p = list_last_entry(tasks, struct task_struct, se.group_node);
+
 		if (!can_migrate_task(p, env))
 			goto next;
 
-- 
2.17.1
Re: [PATCH 3/4] sched/fair: move call to list_last_entry() in detach_tasks
Posted by Dietmar Eggemann 3 years, 6 months ago
On 25/08/2022 14:27, Vincent Guittot wrote:

s/sched/fair: move/sched/fair: Move
s/detach_tasks/detach_tasks()

> Move the call to list_last_entry() in detach_tasks() after testing
> loop_max and loop_break.
> 
> Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
> ---
>  kernel/sched/fair.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
> index 6972a1a29a48..260a55ac462f 100644
> --- a/kernel/sched/fair.c
> +++ b/kernel/sched/fair.c
> @@ -8047,8 +8047,6 @@ static int detach_tasks(struct lb_env *env)
>  		if (env->idle != CPU_NOT_IDLE && env->src_rq->nr_running <= 1)
>  			break;
>  
> -		p = list_last_entry(tasks, struct task_struct, se.group_node);
> -
>  		env->loop++;
>  		/*
>  		 * We've more or less seen every task there is, call it quits
> @@ -8065,6 +8063,8 @@ static int detach_tasks(struct lb_env *env)
>  			break;
>  		}
>  
> +		p = list_last_entry(tasks, struct task_struct, se.group_node);
> +
>  		if (!can_migrate_task(p, env))
>  			goto next;
>  

Reviewed-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
[tip: sched/core] sched/fair: Move call to list_last_entry() in detach_tasks
Posted by tip-bot2 for Vincent Guittot 3 years, 6 months ago
The following commit has been merged into the sched/core branch of tip:

Commit-ID:     7e9518baed4cef76dbfa07cbffbae1e6dbc87be6
Gitweb:        https://git.kernel.org/tip/7e9518baed4cef76dbfa07cbffbae1e6dbc87be6
Author:        Vincent Guittot <vincent.guittot@linaro.org>
AuthorDate:    Thu, 25 Aug 2022 14:27:25 +02:00
Committer:     Peter Zijlstra <peterz@infradead.org>
CommitterDate: Thu, 15 Sep 2022 16:13:52 +02:00

sched/fair: Move call to list_last_entry() in detach_tasks

Move the call to list_last_entry() in detach_tasks() after testing
loop_max and loop_break.

Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20220825122726.20819-4-vincent.guittot@linaro.org
---
 kernel/sched/fair.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 7b3a58f..5ffec43 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -8044,8 +8044,6 @@ static int detach_tasks(struct lb_env *env)
 		if (env->idle != CPU_NOT_IDLE && env->src_rq->nr_running <= 1)
 			break;
 
-		p = list_last_entry(tasks, struct task_struct, se.group_node);
-
 		env->loop++;
 		/*
 		 * We've more or less seen every task there is, call it quits
@@ -8062,6 +8060,8 @@ static int detach_tasks(struct lb_env *env)
 			break;
 		}
 
+		p = list_last_entry(tasks, struct task_struct, se.group_node);
+
 		if (!can_migrate_task(p, env))
 			goto next;