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
This commit is contained in:
@@ -2940,7 +2940,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;
|
||||
@@ -2953,12 +2953,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) { }
|
||||
|
||||
Reference in New Issue
Block a user