This is a resend of https://lore.kernel.org/stable/20230308162207.2886641-1-qyousef@xxxxxxxxxxx/ Which was dropped because of build errors on 5.10 equivalent backport. I extended the testing to make sure this series is not impacted like 5.10 backport. And update the cover letter to clarify there's no need to take further backports which removes capacity inversion detection. Portion of the fixes were ported in 5.15 but missed some. This ports the remainder of the fixes. Based on 5.15.98. 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 Boot tested on android 5.15 GKI with slight modifications due to other conflicts there. I need more time to be able to do full functional testing on 5.15 - but since some patches were already taken - posting the remainder now. Sorry due to job/email change I missed the emails when the other backports were partially taken. Qais Yousef (7): sched/uclamp: Fix fits_capacity() check in feec() 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 | 128 +++++++++++++++++++++++++++++++++++++------ kernel/sched/sched.h | 61 ++++++++++++++++++++- 3 files changed, 174 insertions(+), 25 deletions(-) -- 2.25.1