Re: [PATCH 1/2 v2] sched: fix find_idlest_group for fork
From: Vincent Guittot
Date: Tue Nov 29 2016 - 09:57:59 EST
On 29 November 2016 at 15:50, Morten Rasmussen <morten.rasmussen@xxxxxxx> wrote:
> On Tue, Nov 29, 2016 at 02:04:27PM +0100, Vincent Guittot wrote:
>> On 29 November 2016 at 11:57, Morten Rasmussen <morten.rasmussen@xxxxxxx> 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.
Thanks
>
> Morten