Re: [PATCH 04/16] sched/fair: Optimize find_idlest_cpu() when there is no choice

From: Mike Galbraith
Date: Tue May 24 2016 - 04:15:03 EST


On Tue, 2016-05-24 at 09:05 +0100, Morten Rasmussen wrote:
> On Tue, May 24, 2016 at 08:29:05AM +0200, Mike Galbraith wrote:
> >
> > > +> > > > > > > > /* Check if we have any choice */
> > > +> > > > > > > > if (group->group_weight == 1) {
> > > +> > > > > > > > > > > > > > > return cpumask_first(sched_group_cpus(group));
> > > +> > > > > > > > }
> > > +
> >
> > Hm, if task isn't allowed there, too bad?
>
> Is that possible for single-cpu groups? I thought we skipped groups with
> no cpus allowed in find_idlest_group():
>
> /* Skip over this group if it has no CPUs allowed */
> if (!cpumask_intersects(sched_group_cpus(group),
> tsk_cpus_allowed(p)))
> continue;
>
> Since the group has at least one cpu allowed and only contains one cpu,
> that cpu must be allowed. No?

Yup, you're right, handled before we got there.

-Mike