Loading drivers/cpufreq/cpufreq_interactive.c +15 −10 Original line number Diff line number Diff line Loading @@ -439,11 +439,11 @@ static void cpufreq_interactive_timer(unsigned long data) spin_lock_irqsave(&pcpu->target_freq_lock, flags); loadadjfreq = (unsigned int)cputime_speedadj * 100; cpu_load = loadadjfreq / pcpu->target_freq; cpu_load = loadadjfreq / pcpu->policy->cur; boosted = tunables->boost_val || now < tunables->boostpulse_endtime; if (cpu_load >= tunables->go_hispeed_load || boosted) { if (pcpu->target_freq < tunables->hispeed_freq) { if (pcpu->policy->cur < tunables->hispeed_freq) { new_freq = tunables->hispeed_freq; } else { new_freq = choose_freq(pcpu, loadadjfreq); Loading @@ -455,10 +455,10 @@ static void cpufreq_interactive_timer(unsigned long data) new_freq = choose_freq(pcpu, loadadjfreq); } if (pcpu->target_freq >= tunables->hispeed_freq && new_freq > pcpu->target_freq && if (pcpu->policy->cur >= tunables->hispeed_freq && new_freq > pcpu->policy->cur && now - pcpu->hispeed_validate_time < freq_to_above_hispeed_delay(tunables, pcpu->target_freq)) { freq_to_above_hispeed_delay(tunables, pcpu->policy->cur)) { trace_cpufreq_interactive_notyet( data, cpu_load, pcpu->target_freq, pcpu->policy->cur, new_freq); Loading @@ -466,8 +466,6 @@ static void cpufreq_interactive_timer(unsigned long data) goto rearm; } pcpu->hispeed_validate_time = now; if (cpufreq_frequency_table_target(pcpu->policy, pcpu->freq_table, new_freq, CPUFREQ_RELATION_L, &index)) { Loading Loading @@ -654,6 +652,7 @@ static int cpufreq_interactive_speedchange_task(void *data) for_each_cpu(cpu, &tmp_mask) { unsigned int j; unsigned int max_freq = 0; struct cpufreq_interactive_cpuinfo *pjcpu; pcpu = &per_cpu(cpuinfo, cpu); if (!down_read_trylock(&pcpu->enable_sem)) Loading @@ -664,17 +663,23 @@ static int cpufreq_interactive_speedchange_task(void *data) } for_each_cpu(j, pcpu->policy->cpus) { struct cpufreq_interactive_cpuinfo *pjcpu = &per_cpu(cpuinfo, j); pjcpu = &per_cpu(cpuinfo, j); if (pjcpu->target_freq > max_freq) max_freq = pjcpu->target_freq; } if (max_freq != pcpu->policy->cur) if (max_freq != pcpu->policy->cur) { u64 now; __cpufreq_driver_target(pcpu->policy, max_freq, CPUFREQ_RELATION_H); now = ktime_to_us(ktime_get()); for_each_cpu(j, pcpu->policy->cpus) { pjcpu = &per_cpu(cpuinfo, j); pjcpu->hispeed_validate_time = now; } } trace_cpufreq_interactive_setspeed(cpu, pcpu->target_freq, pcpu->policy->cur); Loading Loading
drivers/cpufreq/cpufreq_interactive.c +15 −10 Original line number Diff line number Diff line Loading @@ -439,11 +439,11 @@ static void cpufreq_interactive_timer(unsigned long data) spin_lock_irqsave(&pcpu->target_freq_lock, flags); loadadjfreq = (unsigned int)cputime_speedadj * 100; cpu_load = loadadjfreq / pcpu->target_freq; cpu_load = loadadjfreq / pcpu->policy->cur; boosted = tunables->boost_val || now < tunables->boostpulse_endtime; if (cpu_load >= tunables->go_hispeed_load || boosted) { if (pcpu->target_freq < tunables->hispeed_freq) { if (pcpu->policy->cur < tunables->hispeed_freq) { new_freq = tunables->hispeed_freq; } else { new_freq = choose_freq(pcpu, loadadjfreq); Loading @@ -455,10 +455,10 @@ static void cpufreq_interactive_timer(unsigned long data) new_freq = choose_freq(pcpu, loadadjfreq); } if (pcpu->target_freq >= tunables->hispeed_freq && new_freq > pcpu->target_freq && if (pcpu->policy->cur >= tunables->hispeed_freq && new_freq > pcpu->policy->cur && now - pcpu->hispeed_validate_time < freq_to_above_hispeed_delay(tunables, pcpu->target_freq)) { freq_to_above_hispeed_delay(tunables, pcpu->policy->cur)) { trace_cpufreq_interactive_notyet( data, cpu_load, pcpu->target_freq, pcpu->policy->cur, new_freq); Loading @@ -466,8 +466,6 @@ static void cpufreq_interactive_timer(unsigned long data) goto rearm; } pcpu->hispeed_validate_time = now; if (cpufreq_frequency_table_target(pcpu->policy, pcpu->freq_table, new_freq, CPUFREQ_RELATION_L, &index)) { Loading Loading @@ -654,6 +652,7 @@ static int cpufreq_interactive_speedchange_task(void *data) for_each_cpu(cpu, &tmp_mask) { unsigned int j; unsigned int max_freq = 0; struct cpufreq_interactive_cpuinfo *pjcpu; pcpu = &per_cpu(cpuinfo, cpu); if (!down_read_trylock(&pcpu->enable_sem)) Loading @@ -664,17 +663,23 @@ static int cpufreq_interactive_speedchange_task(void *data) } for_each_cpu(j, pcpu->policy->cpus) { struct cpufreq_interactive_cpuinfo *pjcpu = &per_cpu(cpuinfo, j); pjcpu = &per_cpu(cpuinfo, j); if (pjcpu->target_freq > max_freq) max_freq = pjcpu->target_freq; } if (max_freq != pcpu->policy->cur) if (max_freq != pcpu->policy->cur) { u64 now; __cpufreq_driver_target(pcpu->policy, max_freq, CPUFREQ_RELATION_H); now = ktime_to_us(ktime_get()); for_each_cpu(j, pcpu->policy->cpus) { pjcpu = &per_cpu(cpuinfo, j); pjcpu->hispeed_validate_time = now; } } trace_cpufreq_interactive_setspeed(cpu, pcpu->target_freq, pcpu->policy->cur); Loading