diff mbox series

[v2] PM / devfreq: tegra30: Make CPUFreq notifier to take into account boosting

Message ID 20200402222448.8320-1-digetx@gmail.com (mailing list archive)
State Accepted
Delegated to: Chanwoo Choi
Headers show
Series [v2] PM / devfreq: tegra30: Make CPUFreq notifier to take into account boosting | expand

Commit Message

Dmitry Osipenko April 2, 2020, 10:24 p.m. UTC
We're taking into account both HW memory-accesses + CPU activity based on
current CPU's frequency. For memory-accesses there is a kind of hysteresis
in a form of "boosting" which is managed by the tegra30-devfreq driver.
If current HW memory activity is higher than activity judged based of the
CPU's frequency, then there is no need to schedule cpufreq_update_work
because the result of the work will be a NO-OP. And thus,
tegra_actmon_cpufreq_contribution() should return 0, meaning that at the
moment CPU frequency doesn't contribute anything to the final decision
about required memory clock rate.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---

Changelog:

v2: - Made commit's message more detailed, which was requested by Chanwoo Choi
      in the review comment to v1.

    - This patch is now made to be standalone because there are no dependencies
      in regards to this change.

 drivers/devfreq/tegra30-devfreq.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Chanwoo Choi April 3, 2020, 6:20 a.m. UTC | #1
On 4/3/20 7:24 AM, Dmitry Osipenko wrote:
> We're taking into account both HW memory-accesses + CPU activity based on
> current CPU's frequency. For memory-accesses there is a kind of hysteresis
> in a form of "boosting" which is managed by the tegra30-devfreq driver.
> If current HW memory activity is higher than activity judged based of the
> CPU's frequency, then there is no need to schedule cpufreq_update_work
> because the result of the work will be a NO-OP. And thus,
> tegra_actmon_cpufreq_contribution() should return 0, meaning that at the
> moment CPU frequency doesn't contribute anything to the final decision
> about required memory clock rate.
> 
> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
> ---
> 
> Changelog:
> 
> v2: - Made commit's message more detailed, which was requested by Chanwoo Choi
>       in the review comment to v1.
> 
>     - This patch is now made to be standalone because there are no dependencies
>       in regards to this change.
> 
>  drivers/devfreq/tegra30-devfreq.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/devfreq/tegra30-devfreq.c b/drivers/devfreq/tegra30-devfreq.c
> index 28b2c7ca416e..dfc3ac93c584 100644
> --- a/drivers/devfreq/tegra30-devfreq.c
> +++ b/drivers/devfreq/tegra30-devfreq.c
> @@ -420,7 +420,7 @@ tegra_actmon_cpufreq_contribution(struct tegra_devfreq *tegra,
>  
>  	static_cpu_emc_freq = actmon_cpu_to_emc_rate(tegra, cpu_freq);
>  
> -	if (dev_freq >= static_cpu_emc_freq)
> +	if (dev_freq + actmon_dev->boost_freq >= static_cpu_emc_freq)
>  		return 0;
>  
>  	return static_cpu_emc_freq;
> 

Applied it. Thanks.
diff mbox series

Patch

diff --git a/drivers/devfreq/tegra30-devfreq.c b/drivers/devfreq/tegra30-devfreq.c
index 28b2c7ca416e..dfc3ac93c584 100644
--- a/drivers/devfreq/tegra30-devfreq.c
+++ b/drivers/devfreq/tegra30-devfreq.c
@@ -420,7 +420,7 @@  tegra_actmon_cpufreq_contribution(struct tegra_devfreq *tegra,
 
 	static_cpu_emc_freq = actmon_cpu_to_emc_rate(tegra, cpu_freq);
 
-	if (dev_freq >= static_cpu_emc_freq)
+	if (dev_freq + actmon_dev->boost_freq >= static_cpu_emc_freq)
 		return 0;
 
 	return static_cpu_emc_freq;