On 01/04/2011 11:41 AM, Hillf Danton wrote:
/* !curr->sched_class->yield_to_task || */
+ curr->sched_class != p->sched_class) {
+ goto out;
+ }
+
/*
* ask scheduler to compute the next for successfully kicking
@p onto its CPU
* what if p_rq is rt_class to do?
*/
next = pick_next_task(p_rq);
if (next != p)
p->se.vruntime = next->se.vruntime -1;
deactivate_task(p_rq, p, 0);
activate_task(p_rq, p, 0);
if (rq == p_rq)
schedule();
else
resched_task(p_rq->curr);
yield = 0;
Wouldn't that break for FIFO and RR tasks?
There's a reason all the scheduler folks wanted a
per-class yield_to_task function :)
--
All rights reversed
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html