diff options
Diffstat (limited to 'kernel/sched/cpufreq_schedutil.c')
| -rw-r--r-- | kernel/sched/cpufreq_schedutil.c | 10 | 
1 files changed, 3 insertions, 7 deletions
diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c index 76877a62b5fa..076a2e31951c 100644 --- a/kernel/sched/cpufreq_schedutil.c +++ b/kernel/sched/cpufreq_schedutil.c @@ -101,9 +101,6 @@ static void sugov_update_commit(struct sugov_policy *sg_policy, u64 time,  	if (sg_policy->next_freq == next_freq)  		return; -	if (sg_policy->next_freq > next_freq) -		next_freq = (sg_policy->next_freq + next_freq) >> 1; -  	sg_policy->next_freq = next_freq;  	sg_policy->last_freq_update_time = time; @@ -245,11 +242,10 @@ static void sugov_update_single(struct update_util_data *hook, u64 time,  	sugov_update_commit(sg_policy, time, next_f);  } -static unsigned int sugov_next_freq_shared(struct sugov_cpu *sg_cpu) +static unsigned int sugov_next_freq_shared(struct sugov_cpu *sg_cpu, u64 time)  {  	struct sugov_policy *sg_policy = sg_cpu->sg_policy;  	struct cpufreq_policy *policy = sg_policy->policy; -	u64 last_freq_update_time = sg_policy->last_freq_update_time;  	unsigned long util = 0, max = 1;  	unsigned int j; @@ -265,7 +261,7 @@ static unsigned int sugov_next_freq_shared(struct sugov_cpu *sg_cpu)  		 * enough, don't take the CPU into account as it probably is  		 * idle now (and clear iowait_boost for it).  		 */ -		delta_ns = last_freq_update_time - j_sg_cpu->last_update; +		delta_ns = time - j_sg_cpu->last_update;  		if (delta_ns > TICK_NSEC) {  			j_sg_cpu->iowait_boost = 0;  			continue; @@ -309,7 +305,7 @@ static void sugov_update_shared(struct update_util_data *hook, u64 time,  		if (flags & SCHED_CPUFREQ_RT_DL)  			next_f = sg_policy->policy->cpuinfo.max_freq;  		else -			next_f = sugov_next_freq_shared(sg_cpu); +			next_f = sugov_next_freq_shared(sg_cpu, time);  		sugov_update_commit(sg_policy, time, next_f);  	}  | 
