Messages in this thread | | | From | "Rafael J. Wysocki" <> | Date | Wed, 27 Mar 2024 16:21:00 +0100 | Subject | Re: [PATCH] cpufreq: Use a smaller freq for the policy->max when verify |
| |
On Wed, Mar 20, 2024 at 4:21 AM Viresh Kumar <viresh.kumar@linaro.org> wrote: > > On 19-03-24, 16:01, Xuewen Yan wrote: > > When driver use the cpufreq_frequency_table_verify() as the > > cpufreq_driver->verify's callback. It may cause the policy->max > > bigger than the freq_qos's max freq. > > > > Just as follow: > > > > unisoc:/sys/devices/system/cpu/cpufreq/policy0 # cat scaling_available_frequencies > > 614400 768000 988000 1228800 1469000 1586000 1690000 1833000 2002000 2093000 > > > > unisoc:/sys/devices/system/cpu/cpufreq/policy0 # echo 1900000 > scaling_max_freq > > unisoc:/sys/devices/system/cpu/cpufreq/policy0 # echo 1900000 > scaling_min_freq > > unisoc:/sys/devices/system/cpu/cpufreq/policy0 # cat scaling_max_freq > > 2002000 > > unisoc:/sys/devices/system/cpu/cpufreq/policy0 # cat scaling_min_freq > > 2002000 > > > > When user set the qos_min and qos_max as the same value, and the value > > is not in the freq-table, the above scenario will occur. > > > > This is because in cpufreq_frequency_table_verify() func, when it can not > > find the freq in table, it will change the policy->max to be a bigger freq, > > as above, because there is no 1.9G in the freq-table, the policy->max would > > be set to 2.002G. As a result, the cpufreq_policy->max is bigger than the > > user's qos_max. This is unreasonable. > > > > So use a smaller freq when can not find the freq in fre-table, to prevent > > freq-table > > > the policy->max exceed the qos's max freq. > > > > Signed-off-by: Xuewen Yan <xuewen.yan@unisoc.com> > > --- > > drivers/cpufreq/freq_table.c | 8 ++++---- > > 1 file changed, 4 insertions(+), 4 deletions(-) > > Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Applied as 6.10 material, thanks!
| |