[PATCH] cpufreq/schedutil: When updating limitations, frequency modulation interval not become invalid.

Lizhe posted 1 patch 2 years ago
drivers/cpufreq/cpufreq.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] cpufreq/schedutil: When updating limitations, frequency modulation interval not become invalid.
Posted by Lizhe 2 years ago
If the current frequency scaling policy is schedutil.
echo schedutil > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
This would result in an invalid frequency modulation interval.
In sugov_limit(), sg_policy->limits_changed is set to true.

Signed-off-by: Lizhe <sensor1010@163.com>
---
 drivers/cpufreq/cpufreq.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index 44db4f59c4cc..a0af38fcb7e2 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -2631,7 +2631,7 @@ static int cpufreq_set_policy(struct cpufreq_policy *policy,
 
 	if (new_gov == policy->governor) {
 		pr_debug("governor limits update\n");
-		cpufreq_governor_limits(policy);
+		cpufreq_policy_apply_limits(policy);
 		return 0;
 	}
 
-- 
2.25.1
Re: [PATCH] cpufreq/schedutil: When updating limitations, frequency modulation interval not become invalid.
Posted by Viresh Kumar 2 years ago
On 04-02-24, 06:09, Lizhe wrote:
> If the current frequency scaling policy is schedutil.
> echo schedutil > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
> This would result in an invalid frequency modulation interval.
> In sugov_limit(), sg_policy->limits_changed is set to true.

That will only make us do an extra freq change. What's the problem with that ?

> Signed-off-by: Lizhe <sensor1010@163.com>
> ---
>  drivers/cpufreq/cpufreq.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
> index 44db4f59c4cc..a0af38fcb7e2 100644
> --- a/drivers/cpufreq/cpufreq.c
> +++ b/drivers/cpufreq/cpufreq.c
> @@ -2631,7 +2631,7 @@ static int cpufreq_set_policy(struct cpufreq_policy *policy,
>  
>  	if (new_gov == policy->governor) {
>  		pr_debug("governor limits update\n");
> -		cpufreq_governor_limits(policy);
> +		cpufreq_policy_apply_limits(policy);
>  		return 0;
>  	}

-- 
viresh