Re: [patch] DLS: fix switched_from_dl

From: Juri Lelli
Date: Sun Apr 22 2012 - 12:11:04 EST


On 04/10/2012 04:25 PM, Hillf Danton wrote:
Pull only if the current task switches from DLS, since it was not preempted
by pushable tasks waiting on other runqueues.

Signed-off-by: Hillf Danton<dhillf@xxxxxxxxx>
---

--- a/kernel/sched_dl.c Mon Apr 9 19:39:56 2012
+++ b/kernel/sched_dl.c Tue Apr 10 21:23:52 2012
@@ -1466,12 +1466,7 @@ static void switched_from_dl(struct rq *
hrtimer_try_to_cancel(&p->dl.dl_timer);

#ifdef CONFIG_SMP
- /*
- * Since this might be the only -deadline task on the rq,
- * this is the right place to try to pull some other one
- * from an overloaded cpu, if any.
- */
- if (!rq->dl.dl_nr_running)
+ if (p == rq->curr)
pull_dl_task(rq);
#endif
}
--

I'd stay with the original code. p (former -dl task) is going away
(changed its scheduling class from -dl to something else). If it was
the last -dl task on rq I'd probably want to pull someone else. No
assumptions needed in this case.

Thanks,

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