• Qais Yousef's avatar
    sched/uclamp: Make cpu_overutilized() use util_fits_cpu() · c56ab1b3
    Qais Yousef authored
    So that it is now uclamp aware.
    
    This fixes a major problem of busy tasks capped with UCLAMP_MAX keeping
    the system in overutilized state which disables EAS and leads to wasting
    energy in the long run.
    
    Without this patch running a busy background activity like JIT
    compilation on Pixel 6 causes the system to be in overutilized state
    74.5% of the time.
    
    With this patch this goes down to  9.79%.
    
    It also fixes another problem when long running tasks that have their
    UCLAMP_MIN changed while running such that they need to upmigrate to
    honour the new UCLAMP_MIN value. The upmigration doesn't get triggered
    because overutilized state never gets set in this state, hence misfit
    migration never happens at tick in this case until the task wakes up
    again.
    
    Fixes: af24bde8 ("sched/uclamp: Add uclamp support to energy_compute()")
    Signed-off-by: default avatarQais Yousef <qais.yousef@arm.com>
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Link: https://lore.kernel.org/r/20220804143609.515789-7-qais.yousef@arm.com
    c56ab1b3
fair.c 328 KB