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 <[email protected]>
---
  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)

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to