All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] sched/deadline: fix rq->dl.pushable_tasks bug in push_dl_task()
@ 2014-11-06  7:22 Wanpeng Li
  2014-11-11  7:44 ` Wanpeng Li
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Wanpeng Li @ 2014-11-06  7:22 UTC (permalink / raw)
  To: Ingo Molnar, Peter Zijlstra, Juri Lelli
  Cc: Kirill Tkhai, linux-kernel, Wanpeng Li

Do not call dequeue_pushable_dl_task() when failing to push an eligible
task, as it remains pushable, merely not at this particular moment. 
Actually the patch is the same behavior as commit 311e800e16f6 ("sched, 
rt: Fix rq->rt.pushable_tasks bug in push_rt_task()" in -rt side.

Signed-off-by: Wanpeng Li <wanpeng.li@linux.intel.com>
---
 kernel/sched/deadline.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
index f3d7776..00324af 100644
--- a/kernel/sched/deadline.c
+++ b/kernel/sched/deadline.c
@@ -1331,6 +1331,7 @@ static int push_dl_task(struct rq *rq)
 {
 	struct task_struct *next_task;
 	struct rq *later_rq;
+	int ret = 0;
 
 	if (!rq->dl.overloaded)
 		return 0;
@@ -1376,7 +1377,6 @@ retry:
 			 * The task is still there. We don't try
 			 * again, some other cpu will pull it when ready.
 			 */
-			dequeue_pushable_dl_task(rq, next_task);
 			goto out;
 		}
 
@@ -1392,6 +1392,7 @@ retry:
 	deactivate_task(rq, next_task, 0);
 	set_task_cpu(next_task, later_rq->cpu);
 	activate_task(later_rq, next_task, 0);
+	ret = 1;
 
 	resched_curr(later_rq);
 
@@ -1400,7 +1401,7 @@ retry:
 out:
 	put_task_struct(next_task);
 
-	return 1;
+	return ret;
 }
 
 static void push_dl_tasks(struct rq *rq)
-- 
1.9.1


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

* Re: [PATCH] sched/deadline: fix rq->dl.pushable_tasks bug in push_dl_task()
  2014-11-06  7:22 [PATCH] sched/deadline: fix rq->dl.pushable_tasks bug in push_dl_task() Wanpeng Li
@ 2014-11-11  7:44 ` Wanpeng Li
  2014-11-13  9:30 ` Juri Lelli
  2014-11-16 12:32 ` [tip:sched/core] sched/deadline: Fix rq-> dl.pushable_tasks " tip-bot for Wanpeng Li
  2 siblings, 0 replies; 4+ messages in thread
From: Wanpeng Li @ 2014-11-11  7:44 UTC (permalink / raw)
  To: Wanpeng Li, Ingo Molnar, Peter Zijlstra, Juri Lelli
  Cc: Kirill Tkhai, linux-kernel

Ping Juri, could you review this one and other deadline patches of mine? 
;-)
On 14/11/6 下午3:22, Wanpeng Li wrote:
> Do not call dequeue_pushable_dl_task() when failing to push an eligible
> task, as it remains pushable, merely not at this particular moment.
> Actually the patch is the same behavior as commit 311e800e16f6 ("sched,
> rt: Fix rq->rt.pushable_tasks bug in push_rt_task()" in -rt side.
>
> Signed-off-by: Wanpeng Li <wanpeng.li@linux.intel.com>
> ---
>   kernel/sched/deadline.c | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
> index f3d7776..00324af 100644
> --- a/kernel/sched/deadline.c
> +++ b/kernel/sched/deadline.c
> @@ -1331,6 +1331,7 @@ static int push_dl_task(struct rq *rq)
>   {
>   	struct task_struct *next_task;
>   	struct rq *later_rq;
> +	int ret = 0;
>   
>   	if (!rq->dl.overloaded)
>   		return 0;
> @@ -1376,7 +1377,6 @@ retry:
>   			 * The task is still there. We don't try
>   			 * again, some other cpu will pull it when ready.
>   			 */
> -			dequeue_pushable_dl_task(rq, next_task);
>   			goto out;
>   		}
>   
> @@ -1392,6 +1392,7 @@ retry:
>   	deactivate_task(rq, next_task, 0);
>   	set_task_cpu(next_task, later_rq->cpu);
>   	activate_task(later_rq, next_task, 0);
> +	ret = 1;
>   
>   	resched_curr(later_rq);
>   
> @@ -1400,7 +1401,7 @@ retry:
>   out:
>   	put_task_struct(next_task);
>   
> -	return 1;
> +	return ret;
>   }
>   
>   static void push_dl_tasks(struct rq *rq)


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

* Re: [PATCH] sched/deadline: fix rq->dl.pushable_tasks bug in push_dl_task()
  2014-11-06  7:22 [PATCH] sched/deadline: fix rq->dl.pushable_tasks bug in push_dl_task() Wanpeng Li
  2014-11-11  7:44 ` Wanpeng Li
@ 2014-11-13  9:30 ` Juri Lelli
  2014-11-16 12:32 ` [tip:sched/core] sched/deadline: Fix rq-> dl.pushable_tasks " tip-bot for Wanpeng Li
  2 siblings, 0 replies; 4+ messages in thread
From: Juri Lelli @ 2014-11-13  9:30 UTC (permalink / raw)
  To: Wanpeng Li, Ingo Molnar, Peter Zijlstra; +Cc: Kirill Tkhai, linux-kernel

Hi,

On 06/11/14 07:22, Wanpeng Li wrote:
> Do not call dequeue_pushable_dl_task() when failing to push an eligible
> task, as it remains pushable, merely not at this particular moment. 
> Actually the patch is the same behavior as commit 311e800e16f6 ("sched, 
> rt: Fix rq->rt.pushable_tasks bug in push_rt_task()" in -rt side.
> 
> Signed-off-by: Wanpeng Li <wanpeng.li@linux.intel.com>
> ---
>  kernel/sched/deadline.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
> index f3d7776..00324af 100644
> --- a/kernel/sched/deadline.c
> +++ b/kernel/sched/deadline.c
> @@ -1331,6 +1331,7 @@ static int push_dl_task(struct rq *rq)
>  {
>  	struct task_struct *next_task;
>  	struct rq *later_rq;
> +	int ret = 0;
>  
>  	if (!rq->dl.overloaded)
>  		return 0;
> @@ -1376,7 +1377,6 @@ retry:
>  			 * The task is still there. We don't try
>  			 * again, some other cpu will pull it when ready.
>  			 */
> -			dequeue_pushable_dl_task(rq, next_task);
>  			goto out;
>  		}
>  
> @@ -1392,6 +1392,7 @@ retry:
>  	deactivate_task(rq, next_task, 0);
>  	set_task_cpu(next_task, later_rq->cpu);
>  	activate_task(later_rq, next_task, 0);
> +	ret = 1;
>  
>  	resched_curr(later_rq);
>  
> @@ -1400,7 +1401,7 @@ retry:
>  out:
>  	put_task_struct(next_task);
>  
> -	return 1;
> +	return ret;
>  }
>  
>  static void push_dl_tasks(struct rq *rq)
> 

This looks good.

Acked-by: Juri Lelli <juri.lelli@arm.com>

Thanks,

- Juri


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

* [tip:sched/core] sched/deadline: Fix rq-> dl.pushable_tasks bug in push_dl_task()
  2014-11-06  7:22 [PATCH] sched/deadline: fix rq->dl.pushable_tasks bug in push_dl_task() Wanpeng Li
  2014-11-11  7:44 ` Wanpeng Li
  2014-11-13  9:30 ` Juri Lelli
@ 2014-11-16 12:32 ` tip-bot for Wanpeng Li
  2 siblings, 0 replies; 4+ messages in thread
From: tip-bot for Wanpeng Li @ 2014-11-16 12:32 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: tglx, ktkhai, linux-kernel, juri.lelli, hpa, wanpeng.li, mingo,
	torvalds, peterz

Commit-ID:  c51b8ab5ad972df26fd9c0ffad34870e98273c4c
Gitweb:     http://git.kernel.org/tip/c51b8ab5ad972df26fd9c0ffad34870e98273c4c
Author:     Wanpeng Li <wanpeng.li@linux.intel.com>
AuthorDate: Thu, 6 Nov 2014 15:22:44 +0800
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Sun, 16 Nov 2014 10:58:57 +0100

sched/deadline: Fix rq->dl.pushable_tasks bug in push_dl_task()

Do not call dequeue_pushable_dl_task() when failing to push an eligible
task, as it remains pushable, merely not at this particular moment.

Actually the patch is the same behavior as commit 311e800e16f6 ("sched,
rt: Fix rq->rt.pushable_tasks bug in push_rt_task()" in -rt side.

Signed-off-by: Wanpeng Li <wanpeng.li@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Juri Lelli <juri.lelli@arm.com>
Cc: Kirill Tkhai <ktkhai@parallels.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: http://lkml.kernel.org/r/1415258564-8573-1-git-send-email-wanpeng.li@linux.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 kernel/sched/deadline.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
index bb1464b..9594c12 100644
--- a/kernel/sched/deadline.c
+++ b/kernel/sched/deadline.c
@@ -1328,6 +1328,7 @@ static int push_dl_task(struct rq *rq)
 {
 	struct task_struct *next_task;
 	struct rq *later_rq;
+	int ret = 0;
 
 	if (!rq->dl.overloaded)
 		return 0;
@@ -1373,7 +1374,6 @@ retry:
 			 * The task is still there. We don't try
 			 * again, some other cpu will pull it when ready.
 			 */
-			dequeue_pushable_dl_task(rq, next_task);
 			goto out;
 		}
 
@@ -1389,6 +1389,7 @@ retry:
 	deactivate_task(rq, next_task, 0);
 	set_task_cpu(next_task, later_rq->cpu);
 	activate_task(later_rq, next_task, 0);
+	ret = 1;
 
 	resched_curr(later_rq);
 
@@ -1397,7 +1398,7 @@ retry:
 out:
 	put_task_struct(next_task);
 
-	return 1;
+	return ret;
 }
 
 static void push_dl_tasks(struct rq *rq)

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

end of thread, other threads:[~2014-11-16 12:33 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-06  7:22 [PATCH] sched/deadline: fix rq->dl.pushable_tasks bug in push_dl_task() Wanpeng Li
2014-11-11  7:44 ` Wanpeng Li
2014-11-13  9:30 ` Juri Lelli
2014-11-16 12:32 ` [tip:sched/core] sched/deadline: Fix rq-> dl.pushable_tasks " tip-bot for Wanpeng Li

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.