mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 11:26:02 +09:00
ANDROID: sched/fair: Cap transient util in stune
boosted_cpu_util() sums the CFS and RT util signals before they are used for frequency selection. While the util_avg signals are in sync, util_est prevents cpu_util_cfs() from decreasing when a CFS task is preempted by RT. This util_est behaviour is beneficial in many scenarios, but it can cause the sum of rt_util and cfs_util to go above SCHED_CAPACITY_SCALE. Although benign, this transient value appears in the stune tracepoints, and can cause confusion. Work around the problem by capping the util sum to SCHED_CAPACITY_SCALE. Bug: 120440300 Change-Id: I2be6eb157af86024e52ae11715f5637c77b201a3 Signed-off-by: Quentin Perret <quentin.perret@arm.com>
This commit is contained in:
@@ -5922,7 +5922,8 @@ schedtune_task_margin(struct task_struct *task)
|
||||
unsigned long
|
||||
boosted_cpu_util(int cpu, unsigned long other_util)
|
||||
{
|
||||
unsigned long util = cpu_util_cfs(cpu_rq(cpu)) + other_util;
|
||||
unsigned long util = min_t(unsigned long, SCHED_CAPACITY_SCALE,
|
||||
cpu_util_cfs(cpu_rq(cpu)) + other_util);
|
||||
long margin = schedtune_cpu_margin(util, cpu);
|
||||
|
||||
trace_sched_boost_cpu(cpu, util, margin);
|
||||
|
||||
Reference in New Issue
Block a user