Changes in v2: * Fix compilation error against patch 7 due to misiplace #endif to protect against CONFIG_SMP which doesn't contain the newly added field to struct rq. Commit 2ff401441711 ("sched/uclamp: Fix relationship between uclamp and migration margin") was cherry-picked into 5.10 kernels but missed the rest of the series. This ports the remainder of the fixes. Based on 5.10.172. NOTE: a2e90611b9f4 ("sched/fair: Remove capacity inversion detection") is not necessary to backport because it has a dependency on e5ed0550c04c ("sched/fair: unlink misfit task from cpu overutilized") which is nice to have but not strictly required. It improves the search for best CPU under adverse thermal pressure to try harder. And the new search effectively replaces the capacity inversion detection, so it is removed afterwards. Build tested on (cross compile when necessary; x86_64 otherwise): 1. default ubuntu config which has uclamp + smp 2. default ubuntu config without uclamp + smp 3. default ubunto config without smp (which automatically disables uclamp) 4. reported riscv-allnoconfig, mips-randconfig, x86_64-randocnfigs Tested on 5.10 Android GKI kernel and android device (with slight modifications due to other conflicts on there). Qais Yousef (10): sched/uclamp: Make task_fits_capacity() use util_fits_cpu() sched/uclamp: Fix fits_capacity() check in feec() sched/uclamp: Make select_idle_capacity() use util_fits_cpu() sched/uclamp: Make asym_fits_capacity() use util_fits_cpu() sched/uclamp: Make cpu_overutilized() use util_fits_cpu() sched/uclamp: Cater for uclamp in find_energy_efficient_cpu()'s early exit condition sched/fair: Detect capacity inversion sched/fair: Consider capacity inversion in util_fits_cpu() sched/uclamp: Fix a uninitialized variable warnings sched/fair: Fixes for capacity inversion detection kernel/sched/core.c | 10 +-- kernel/sched/fair.c | 183 ++++++++++++++++++++++++++++++++++--------- kernel/sched/sched.h | 70 ++++++++++++++++- 3 files changed, 217 insertions(+), 46 deletions(-) -- 2.25.1