Re: [PATCH 1/2 v2] sched: fix find_idlest_group for fork

From: Peter Zijlstra
Date: Tue Nov 29 2016 - 06:43:01 EST


On Tue, Nov 29, 2016 at 10:57:59AM +0000, Morten Rasmussen 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
> :-(

IIRC, and my pounding head really doesn't remember much, the comment
reads like we need the large fudge factor because hackbench. That is,
hackbench would like this test to go away, but others benchmarks will
tank.

Now, if only I would've written down which benchmarks that were.. awell.