On Sat, Mar 15, 2014 at 3:45 AM, Kirill Tkhai <[email protected]> wrote: > This reverts commit 4c6c4e38c4e9 [sched/core: Fix endless loop in > pick_next_task()], which is not necessary after [sched/rt: Substract number > of tasks of throttled queues from rq->nr_running]
Reviewed-by: Preeti U Murthy <[email protected]> > > Signed-off-by: Kirill Tkhai <[email protected]> > CC: Peter Zijlstra <[email protected]> > CC: Ingo Molnar <[email protected]> > --- > kernel/sched/fair.c | 4 +--- > kernel/sched/rt.c | 10 ++++++++++ > kernel/sched/sched.h | 12 ------------ > 3 files changed, 11 insertions(+), 15 deletions(-) > > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > index 7e9bd0b..0d39ef7 100644 > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -6726,9 +6726,7 @@ static int idle_balance(struct rq *this_rq) > > out: > /* Is there a task of a high priority class? */ > - if (this_rq->nr_running != this_rq->cfs.h_nr_running && > - (this_rq->dl.dl_nr_running || > - (this_rq->rt.rt_nr_running && !rt_rq_throttled(&this_rq->rt)))) > + if (this_rq->nr_running != this_rq->cfs.h_nr_running) > pulled_task = -1; > > if (pulled_task) { > diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c > index c961350..ec0933e 100644 > --- a/kernel/sched/rt.c > +++ b/kernel/sched/rt.c > @@ -493,6 +493,11 @@ static void sched_rt_rq_dequeue(struct rt_rq *rt_rq) > dequeue_rt_entity(rt_se); > } > > +static inline int rt_rq_throttled(struct rt_rq *rt_rq) > +{ > + return rt_rq->rt_throttled && !rt_rq->rt_nr_boosted; > +} > + > static int rt_se_boosted(struct sched_rt_entity *rt_se) > { > struct rt_rq *rt_rq = group_rt_rq(rt_se); > @@ -569,6 +574,11 @@ static inline void sched_rt_rq_dequeue(struct rt_rq > *rt_rq) > dequeue_top_rt_rq(rt_rq); > } > > +static inline int rt_rq_throttled(struct rt_rq *rt_rq) > +{ > + return rt_rq->rt_throttled; > +} > + > static inline const struct cpumask *sched_rt_period_mask(void) > { > return cpu_online_mask; > diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h > index 8327b4e..e8493b4 100644 > --- a/kernel/sched/sched.h > +++ b/kernel/sched/sched.h > @@ -425,18 +425,6 @@ struct rt_rq { > #endif > }; > > -#ifdef CONFIG_RT_GROUP_SCHED > -static inline int rt_rq_throttled(struct rt_rq *rt_rq) > -{ > - return rt_rq->rt_throttled && !rt_rq->rt_nr_boosted; > -} > -#else > -static inline int rt_rq_throttled(struct rt_rq *rt_rq) > -{ > - return rt_rq->rt_throttled; > -} > -#endif > - > /* Deadline class' related fields in a runqueue */ > struct dl_rq { > /* runqueue is an rbtree, ordered by deadline */ > > > > > -- > 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/ -- 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/

