Right now the performance govenor is the default frequency govenor on
sunxi devices. This causes some general problems.
When the cpu is idle the cpu runs with its maximum frequency.
This causes a higher cpu temperature in the idle state. When the cpu is
now under load the cpu gets with that higher idle temperature now faster
to its thermal limits.
An other big problem of the performace govenor is the missing
thermal throttling. Some tests with cpuburn resulted in a system crash
when the soc reached its thermal limits since no thermal throttling
occurred.
With this patch we set the default frequency govenor to ondemand mode
and reduce the temperature when the cpu is idle and activate the thermal
throtteling.
Signed-off-by: Philipp Rossak <[email protected]>
---
arch/arm/configs/sunxi_defconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm/configs/sunxi_defconfig b/arch/arm/configs/sunxi_defconfig
index df433abfcb02..e5812851091c 100644
--- a/arch/arm/configs/sunxi_defconfig
+++ b/arch/arm/configs/sunxi_defconfig
@@ -14,6 +14,7 @@ CONFIG_CMA=y
CONFIG_ARM_APPENDED_DTB=y
CONFIG_ARM_ATAG_DTB_COMPAT=y
CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
CONFIG_CPUFREQ_DT=y
CONFIG_VFP=y
CONFIG_NEON=y
--
2.11.0
On Sat, Feb 17, 2018 at 03:22:35PM +0100, Philipp Rossak wrote:
> Right now the performance govenor is the default frequency govenor on
> sunxi devices. This causes some general problems.
> When the cpu is idle the cpu runs with its maximum frequency.
> This causes a higher cpu temperature in the idle state. When the cpu is
> now under load the cpu gets with that higher idle temperature now faster
> to its thermal limits.
> An other big problem of the performace govenor is the missing
> thermal throttling. Some tests with cpuburn resulted in a system crash
> when the soc reached its thermal limits since no thermal throttling
> occurred.
This won't change anything with cpuburn. While cpuburn will be
running, ondemand will increase the frequency of the cores to the
maximum frequency, putting yourself in the exact same situation.
The only difference is going to be when you're idle or have a rather
small CPU load. But then, you won't heat much in that case either.
> With this patch we set the default frequency govenor to ondemand mode
> and reduce the temperature when the cpu is idle and activate the thermal
> throtteling.
This patch doesn't activate the thermal throttling.
Maxime
--
Maxime Ripard, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
http://bootlin.com
On 19.02.2018 09:10, Maxime Ripard wrote:
> On Sat, Feb 17, 2018 at 03:22:35PM +0100, Philipp Rossak wrote:
>> Right now the performance govenor is the default frequency govenor on
>> sunxi devices. This causes some general problems.
>> When the cpu is idle the cpu runs with its maximum frequency.
>> This causes a higher cpu temperature in the idle state. When the cpu is
>> now under load the cpu gets with that higher idle temperature now faster
>> to its thermal limits.
>> An other big problem of the performace govenor is the missing
>> thermal throttling. Some tests with cpuburn resulted in a system crash
>> when the soc reached its thermal limits since no thermal throttling
>> occurred.
>
> This won't change anything with cpuburn. While cpuburn will be
> running, ondemand will increase the frequency of the cores to the
> maximum frequency, putting yourself in the exact same situation.
>
I see here a totally different behavior on the hardware (Bananapi M2, A31s).
First ondemand increases the cpu frequency, when the maximum temperature
is reached, then it throttles down the cpu step by step to its minimum.
And the cpu doesn't get killed, like with the performance govenor.
I can record some "logs" with RPi-Monitor if this is requiered.
> The only difference is going to be when you're idle or have a rather
> small CPU load. But then, you won't heat much in that case either.
>
>> With this patch we set the default frequency govenor to ondemand mode
>> and reduce the temperature when the cpu is idle and activate the thermal
>> throtteling.
>
> This patch doesn't activate the thermal throttling.
>
> Maxime
>
Sorry for my late reply!
Philipp
On Mon, Feb 26, 2018 at 10:29:29PM +0100, Philipp Rossak wrote:
>
>
> On 19.02.2018 09:10, Maxime Ripard wrote:
> > On Sat, Feb 17, 2018 at 03:22:35PM +0100, Philipp Rossak wrote:
> > > Right now the performance govenor is the default frequency govenor on
> > > sunxi devices. This causes some general problems.
> > > When the cpu is idle the cpu runs with its maximum frequency.
> > > This causes a higher cpu temperature in the idle state. When the cpu is
> > > now under load the cpu gets with that higher idle temperature now faster
> > > to its thermal limits.
> > > An other big problem of the performace govenor is the missing
> > > thermal throttling. Some tests with cpuburn resulted in a system crash
> > > when the soc reached its thermal limits since no thermal throttling
> > > occurred.
> >
> > This won't change anything with cpuburn. While cpuburn will be
> > running, ondemand will increase the frequency of the cores to the
> > maximum frequency, putting yourself in the exact same situation.
>
> I see here a totally different behavior on the hardware (Bananapi M2, A31s).
> First ondemand increases the cpu frequency, when the maximum temperature is
> reached, then it throttles down the cpu step by step to its minimum.
This is the thermal throttling, not the cpufreq governor.
Maxime
--
Maxime Ripard, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com