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 <[email protected]>
---
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;
--
2.25.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 <[email protected]>
> ---
>
> 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.
--
Best Regards,
Chanwoo Choi
Samsung Electronics