Messages in this thread | | | Date | Sun, 22 Apr 2012 18:10:53 +0200 | From | Juri Lelli <> | Subject | Re: [patch] DLS: fix switched_from_dl |
| |
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@gmail.com> > --- > > --- 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
| |