Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d4e74202 authored by Todd Kjos's avatar Todd Kjos Committed by Dmitry Shmidt
Browse files

ANDROID: sched: EAS: Avoid causing spikes to max-freq unnecessarily



During scheduler tick handling, the frequency was being set to
max-freq if the current frequency is less than the current
utilization. Change to just request "right" frequency instead
of max.

BUG: 29871410
Change-Id: I6fe65b14413da44b1520ba116f72320083eb92f8
Signed-off-by: default avatarAndres Oportus <andresoportus@google.com>
parent c4eef1f7
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -3153,7 +3153,7 @@ static unsigned long sum_capacity_reqs(unsigned long cfs_cap,
static void sched_freq_tick(int cpu)
{
	struct sched_capacity_reqs *scr;
	unsigned long capacity_orig, capacity_curr;
	unsigned long capacity_orig, capacity_curr, capacity_sum;

	if (!sched_freq())
		return;
@@ -3166,12 +3166,15 @@ static void sched_freq_tick(int cpu)
	/*
	 * To make free room for a task that is building up its "real"
	 * utilization and to harm its performance the least, request
	 * a jump to max OPP as soon as the margin of free capacity is
	 * impacted (specified by capacity_margin).
	 * a jump to a higher OPP as soon as the margin of free capacity
	 * is impacted (specified by capacity_margin).
	 */

	scr = &per_cpu(cpu_sched_capacity_reqs, cpu);
	if (capacity_curr < sum_capacity_reqs(cpu_util(cpu), scr))
		set_cfs_cpu_capacity(cpu, true, capacity_max);
	capacity_sum = sum_capacity_reqs(cpu_util(cpu), scr);
	if (capacity_curr < capacity_sum) {
		set_cfs_cpu_capacity(cpu, true, capacity_sum);
	}
}
#else
static inline void sched_freq_tick(int cpu) { }