On Fri, Nov 8, 2013 at 6:55 AM, Viresh Kumar <viresh.kumar@xxxxxxxxxx> wrote: > On 8 November 2013 00:36, Stratos Karafotis <skarafotis@xxxxxxxxx> wrote: >> I think the existing code already checks if the requested_freq is greater >> than policy->max in __cpufreq_driver_target. > > Yes it does. But the problem is: > - cs_check_cpu() sets requested_freq above policy->max > - We execute following code because (requested_freq != policy->max) > > dbs_info->requested_freq += get_freq_target(cs_tuners, policy); > __cpufreq_driver_target(policy, dbs_info->requested_freq, > CPUFREQ_RELATION_H); > - In __cpufreq_driver_target(), we don't do anything and return early.. > - Above will keep on repeating all the time.. > > If we change the code as I have suggested it to be: > - After first loop where requested_freq went over policy->max, we will > return early from cs_check_cpu(), but we have already set freq to max.. > >> If we put this check earlier, cpufreq will never reach policy->max. > > Can you please explain why do you see that happening? Please let me rephrase my previous post. In some circumstances (depending on freq_step and freq_table values) CPU frequency will never reach to policy->max. For example suppose that (for simplicity values in MHz): policy->max = 1000 policy->cur = 800 requested_freq = 800 freq_target = 300 In 'first' iteration, if we return early with this code (because requested_freq will be 1100): if (dbs_info->requested_freq >= policy->max) return; CPU freq will never go over 800MHz. I think the current code works correctly. - The requested freq will go to 1100 in first iteration. - __cpufreq_driver_target will change CPU freq to 1000 - dbs_cpufreq_notifier will adjust the requested_freq to 1000 In next iteration the code: if (dbs_info->requested_freq == policy->max) return; will keep the freq to max and break out early. So, I think there is no need for an extra check because of dbs_cpufreq_notifier code. Thanks, Stratos Karafotis -- To unsubscribe from this list: send the line "unsubscribe cpufreq" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html