• Vincent Guittot's avatar
    sched: Remove a wake_affine() condition · 05bfb65f
    Vincent Guittot authored
    In wake_affine() I have tried to understand the meaning of the condition:
    
     (this_load <= load &&
      this_load + target_load(prev_cpu, idx) <= tl_per_task)
    
    but I failed to find a use case that can take advantage of it and I haven't
    found clear description in the previous commit's log.
    
    Futhermore, the comment of the condition refers to the task_hot function that
    was used before being replaced by the current condition:
    
    /*
     * This domain has SD_WAKE_AFFINE and
     * p is cache cold in this domain, and
     * there is no bad imbalance.
     */
    
    If we look more deeply the below condition:
    
     this_load + target_load(prev_cpu, idx) <= tl_per_task
    
    When sync is clear, we have:
    
     tl_per_task = runnable_load_avg / nr_running
     this_load = max(runnable_load_avg, cpuload[idx])
     target_load =  max(runnable_load_avg', cpuload'[idx])
    
    It implies that runnable_load_avg == 0 and nr_running <= 1 in order to match the
    condition. This implies that runnable_load_avg == 0 too because of the
    condition: this_load <= load.
    
    but if this _load is null, 'balanced' is already set and the test is redundant.
    
    If sync is set, it's not as straight forward as above (especially if cgroup
    are involved) but the policy should be similar as we have removed a task that's
    going to sleep in order to get a more accurate load and this_load values.
    
    The current conclusion is that these additional condition don't give any benefit
    so we can remove them.
    Signed-off-by: default avatarVincent Guittot <vincent.guittot@linaro.org>
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Cc: preeti@linux.vnet.ibm.com
    Cc: riel@redhat.com
    Cc: Morten.Rasmussen@arm.com
    Cc: efault@gmx.de
    Cc: nicolas.pitre@linaro.org
    Cc: daniel.lezcano@linaro.org
    Cc: dietmar.eggemann@arm.com
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Link: http://lkml.kernel.org/r/1409051215-16788-3-git-send-email-vincent.guittot@linaro.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    05bfb65f
fair.c 205 KB