lkml.org 
[lkml]   [2016]   [Nov]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 1/2 v2] sched: fix find_idlest_group for fork
On Tue, Nov 29, 2016 at 12:42:43PM +0100, Peter Zijlstra wrote:
> 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.

Thanks, that seems in line with Vincent's reply.

The last bit that isn't clear to me is whether /512 is a 'large' fuzz
factor. I guess it is, as we can have many wake-ups, i.e. many times
avg_cost, over the period where avg_idle is calculated. No?

\
 
 \ /
  Last update: 2016-11-29 15:46    [W:0.124 / U:0.496 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site