WSL2-Linux-Kernel/kernel/sched
Vincent Guittot 3ae117c6cd cpufreq/schedutil: Use RT utilization tracking
Add both CFS and RT utilization when selecting an OPP for CFS tasks as RT
can preempt and steal CFS's running time.

RT util_avg is used to take into account the utilization of RT tasks
on the CPU when selecting OPP. If a RT task migrate, the RT utilization
will not migrate but will decay over time. On an overloaded CPU, CFS
utilization reflects the remaining utilization avialable on CPU. When RT
task migrates, the CFS utilization will increase when tasks will start to
use the newly available capacity. At the same pace, RT utilization will
decay and both variations will compensate each other to keep unchanged
overall utilization and will prevent any OPP drop.

Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Morten.Rasmussen@arm.com
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: claudio@evidence.eu.com
Cc: daniel.lezcano@linaro.org
Cc: dietmar.eggemann@arm.com
Cc: joel@joelfernandes.org
Cc: juri.lelli@redhat.com
Cc: luca.abeni@santannapisa.it
Cc: patrick.bellasi@arm.com
Cc: quentin.perret@arm.com
Cc: rjw@rjwysocki.net
Cc: valentin.schneider@arm.com
Link: http://lkml.kernel.org/r/1530200714-4504-4-git-send-email-vincent.guittot@linaro.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2018-07-15 23:51:20 +02:00
..
Makefile sched/pelt: Move PELT related code in a dedicated file 2018-07-15 23:51:20 +02:00
autogroup.c sched/autogroup: Fix possible Spectre-v1 indexing for sched_prio_to_weight[] 2018-05-05 08:34:42 +02:00
autogroup.h
clock.c
completion.c
core.c kthread, sched/core: Fix kthread_parkme() (again...) 2018-07-03 09:17:30 +02:00
cpuacct.c
cpudeadline.c
cpudeadline.h
cpufreq.c
cpufreq_schedutil.c cpufreq/schedutil: Use RT utilization tracking 2018-07-15 23:51:20 +02:00
cpupri.c
cpupri.h
cputime.c
deadline.c sched/deadline: Fix missing clock update 2018-05-31 12:27:13 +02:00
debug.c sched/debug: Use match_string() helper instead of open-coded logic 2018-06-21 15:45:31 +02:00
fair.c sched/rt: Add rt_rq utilization tracking 2018-07-15 23:51:20 +02:00
features.h
idle.c sched: idle: Select idle state before stopping the tick 2018-04-09 11:54:07 +02:00
isolation.c
loadavg.c
membarrier.c
pelt.c sched/rt: Add rt_rq utilization tracking 2018-07-15 23:51:20 +02:00
pelt.h sched/rt: Add rt_rq utilization tracking 2018-07-15 23:51:20 +02:00
rt.c sched/rt: Add rt_rq utilization tracking 2018-07-15 23:51:20 +02:00
sched-pelt.h
sched.h sched/rt: Add rt_rq utilization tracking 2018-07-15 23:51:20 +02:00
stats.c proc: introduce proc_create_seq{,_data} 2018-05-16 07:23:35 +02:00
stats.h
stop_task.c
swait.c sched/swait: Rename to exclusive 2018-06-20 11:35:56 +02:00
topology.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
wait.c
wait_bit.c