Re: [PATCH v3 0/3] sched/fair: Capacity aware wakeup rework

From: Valentin Schneider
Date: Tue Jan 28 2020 - 06:34:27 EST


On 28/01/2020 09:24, Dietmar Eggemann wrote:
> On 26/01/2020 21:09, Valentin Schneider wrote:
>
> [...]
>
>> v2 -> v3
>> --------
>> o Added missing sync_entity_load_avg() (Quentin)
>> o Added fallback CPU selection (maximize capacity)
>> o Added special case for CPU hogs: task_fits_capacity() will always return 'false'
>> for tasks that are simply too big, due to the margin.
>
> v3 fixes the Geekbench multicore regression I saw on Pixel4 (Android 10,
> Android Common Kernel v4.14 based, Snapdragon 855) running v1.
>
> I changed the Pixel4 kernel a bit (PELT instead WALT, mainline
> select_idle_sibling() instead the csctate aware one), mainline
> task_fits_capacity()) for base, v1 & v3.
>
> Since it's not mainline kernel the results have to be taken with a pinch
> of salt but they probably show that the new condition:
>
> if (rq->cpu_capacity_orig == READ_ONCE(rq->rd->max_cpu_capacity) && ...
> return cpu;
>
> has an effect when dealing with tasks with util_est values > 0.8 * 1024.
>

Thanks for going through that hassle! I'm quite pleased with the results
of that change - if you also look at e.g. the stddev for sysbench on Juno,
runs are much more consistent now.