Messages in this thread | | | Subject | Re: [RFC][PATCH 3/7] sched: Allow balance callbacks for check_class_changed() | From | Peter Zijlstra <> | Date | Tue, 02 Jun 2015 16:27:10 +0200 |
| |
On Tue, 2015-06-02 at 16:58 +0300, Kirill Tkhai wrote: > 01.06.2015, 17:13, "Peter Zijlstra" <peterz@infradead.org>:
> > @@ -1010,7 +1014,7 @@ static inline void check_class_changed(s > > if (prev_class != p->sched_class) { > > if (prev_class->switched_from) > > prev_class->switched_from(rq, p); > > - /* Possble rq->lock 'hole'. */ > > + > > But switched_from_dl()->cancel_dl_timer() still unlocks rq->lock. > > It seems we should drop it (cancel_dl_timer) and move hrtimer_cancel() > from switched_from_dl() to finish_task_switch(). It will be executed > for all classes and completely take the functionality we implement > cancel_dl_timer() for.
*groan* yes.. I don't like moving it into generic code though.
more thinking required.
> > p->sched_class->switched_to(rq, p); > > } else if (oldprio != p->prio || dl_task(p)) > > p->sched_class->prio_changed(rq, p, oldprio);
| |