linux-yocto/kernel/sched
Qais Yousef 98762616db sched/fair: Consider capacity inversion in util_fits_cpu()
commit aa69c36f31 upstream.

We do consider thermal pressure in util_fits_cpu() for uclamp_min only.
With the exception of the biggest cores which by definition are the max
performance point of the system and all tasks by definition should fit.

Even under thermal pressure, the capacity of the biggest CPU is the
highest in the system and should still fit every task. Except when it
reaches capacity inversion point, then this is no longer true.

We can handle this by using the inverted capacity as capacity_orig in
util_fits_cpu(). Which not only addresses the problem above, but also
ensure uclamp_max now considers the inverted capacity. Force fitting
a task when a CPU is in this adverse state will contribute to making the
thermal throttling last longer.

Signed-off-by: Qais Yousef <qais.yousef@arm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/r/20220804143609.515789-10-qais.yousef@arm.com
(cherry picked from commit aa69c36f31)
Signed-off-by: Qais Yousef (Google) <qyousef@layalina.io>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-04-26 13:51:53 +02:00
..
autogroup.c
autogroup.h
clock.c
completion.c
core_sched.c
core.c sched/uclamp: Fix fits_capacity() check in feec() 2023-04-26 13:51:52 +02:00
cpuacct.c sched/cpuacct: Fix charge percpu cpuusage 2022-04-08 14:23:11 +02:00
cpudeadline.c sched/core: Introduce sched_asym_cpucap_active() 2022-12-31 13:14:01 +01:00
cpudeadline.h
cpufreq_schedutil.c sched/uclamp: Fix iowait boost escaping uclamp restriction 2022-04-08 14:23:10 +02:00
cpufreq.c
cpupri.c
cpupri.h
cputime.c cputime, cpuacct: Include guest time in user time in cpuacct.stat 2022-01-27 11:05:09 +01:00
deadline.c sched/deadline,rt: Remove unused parameter from pick_next_[rt|dl]_entity() 2023-03-10 09:39:04 +01:00
debug.c sched/debug: fix dentry leak in update_sched_domain_debugfs 2022-09-15 11:30:02 +02:00
fair.c sched/fair: Consider capacity inversion in util_fits_cpu() 2023-04-26 13:51:53 +02:00
features.h sched/fair: Introduce SIS_UTIL to search idle CPU based on sum of util_avg 2022-08-17 14:23:00 +02:00
idle.c lockdep: Fix -Wunused-parameter for _THIS_IP_ 2022-09-20 12:39:42 +02:00
isolation.c
loadavg.c
Makefile
membarrier.c sched/membarrier: Fix membarrier-rseq fence command missing from query bitmask 2022-02-01 17:27:05 +01:00
pelt.c
pelt.h sched/fair: Fix cfs_rq_clock_pelt() for throttled cfs_rq 2022-06-09 10:22:48 +02:00
psi.c sched/psi: Fix use-after-free in ep_remove_wait_queue() 2023-02-22 12:57:06 +01:00
rt.c sched/rt: pick_next_rt_entity(): check list_entry 2023-03-10 09:39:05 +01:00
sched-pelt.h
sched.h sched/fair: Detect capacity inversion 2023-04-26 13:51:53 +02:00
smp.h
stats.c
stats.h psi: Fix PSI_MEM_FULL state when tasks are in memstall and doing reclaim 2022-01-27 11:04:27 +01:00
stop_task.c
swait.c
topology.c
wait_bit.c
wait.c wait: add wake_up_pollfree() 2021-12-14 10:57:15 +01:00