lkml.org 
[lkml]   [2018]   [Aug]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v5 09/14] sched: Add over-utilization/tipping point indicator
From
Date
On 08/06/2018 10:40 AM, Vincent Guittot wrote:
> On Fri, 3 Aug 2018 at 17:55, Quentin Perret <quentin.perret@arm.com> wrote:
>>
>> On Friday 03 Aug 2018 at 15:49:24 (+0200), Vincent Guittot wrote:
>>> On Fri, 3 Aug 2018 at 10:18, Quentin Perret <quentin.perret@arm.com> wrote:
>>>>
>>>> On Friday 03 Aug 2018 at 09:48:47 (+0200), Vincent Guittot wrote:
>>>>> On Thu, 2 Aug 2018 at 18:59, Quentin Perret <quentin.perret@arm.com> wrote:

[...]

>> I think we're discussing two different things right now:
>> 1. Should forkees go in find_energy_efficient_cpu() ?
>> 2. Should forkees have 0 of initial util_avg when EAS is enabled ?
>
> It's the same topic: How EAS should consider a newly created task ?
>
> For now, we let the "performance" mode selects a CPU. This CPU will
> most probably be worst CPU from a EAS pov because it's the idlest CPU
> in the idlest group which is the opposite of what EAS tries to do
>
> The current behavior is :
> For every new task, the cpu selection is done assuming it's a heavy
> task with the max possible load_avg, and it looks for the idlest cpu.
> This means that if the system is lightly loaded, scheduler will select
> most probably a idle big core.

AFAICS, task load doesn't seem to be used for find_idlest_cpu() (
find_idlest_group() and find_idlest_group_cpu()). So the forkee
(SD_BALANCE_FORK) is placed independently of his task load.
Task load (task_h_load(p)) is used in
wake_affine()->wake_affine_weight() but for this to be called it has to
be a wakeup (SD_BALANCE_WAKE).

> The utilization of this new task is then set to half of the remaining
> capacity of the selected CPU which means that the idlest you are, the
> biggest the task will be initialized to. This can easily be half a big
> core which can be bigger than the max capacity of a little like on
> hikey960. Then, util_est will keep track of this value for a while
> which will make this task like a big one.

[...]

\
 
 \ /
  Last update: 2018-08-06 12:09    [W:0.088 / U:18.240 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site