On Tue, Nov 29, 2016 at 02:04:27PM +0100, Vincent Guittot wrote:
> On 29 November 2016 at 11:57, Morten Rasmussen <morten.rasmus...@arm.com> 
> wrote:
> > On Fri, Nov 25, 2016 at 04:34:32PM +0100, Vincent Guittot wrote:
> >> @@ -5708,13 +5708,6 @@ static int select_idle_cpu(struct task_struct *p, 
> >> struct sched_domain *sd, int t
> >>
> >>       avg_cost = this_sd->avg_scan_cost;
> >>
> >> -     /*
> >> -      * Due to large variance we need a large fuzz factor; hackbench in
> >> -      * particularly is sensitive here.
> >> -      */
> >> -     if ((avg_idle / 512) < avg_cost)
> >> -             return -1;
> >> -
> >>       time = local_clock();
> >>
> >>       for_each_cpu_wrap(cpu, sched_domain_span(sd), target, wrap) {
> >
> > I don't quite get this fix, but it is very likely because I haven't paid
> > enough attention.
> >
> > Are you saying that removing the avg_cost check is improving hackbench
> > performance? I thought it was supposed to help hackbench? I'm confused
> > :-(
> 
> Yes, avg_cost check prevents some tasks migration at the end of the
> tests when some threads have already finished their loop letting some
> CPUs idle whereas others threads are still competing on the same CPUS

Okay, thanks.

> > Should we do the same for SD_BALANCE_EXEC?
> 
> I asked myself if i should add SD_BALANCE_EXEC but decided to only
> keep SD_BALANCE_FORK for now as no regression has been raised for now.

Fair enough.

FWIW, with the label renaming suggested by mfleming, you can add my
reviewed/acked-by if you like.

Morten

Reply via email to