mbox series

[0/4] Enhance Thermal support

Message ID 1560349255-26336-1-git-send-email-biju.das@bp.renesas.com (mailing list archive)
Headers show
Series Enhance Thermal support | expand

Message

Biju Das June 12, 2019, 2:20 p.m. UTC
This series aims to enhance thermal support by adding cpu-map,
capacity-dmips-mhz,thermal zone to support IPA and also adding 
dynamic power coefficients.

For CPU capacity-dmips-mhz calculation
-------------------------------------
dhrystone cross complied using the command [1].
[1] $CC -O3 -DTIME -fno-inline -fno-builtin-printf -Wno-implicit -march=armv8-a dhry_1.c dhry_2.c -o exe-dry

dhrystone is executed(with a loop value of 80000000) and took the average value for 5 iterations
of CA57 and CA53.

IPA testing
----------

1)Enable THERMAL_WRITABLE_TRIPS and THERMAL_STATISTICS in kernel

2) Check the current  temperature(36.5 C) and check the cooling stats on device0 and device 1

Execute the below applications on an ssh session

3) while true; do touch pic-`date +%s`.jpg;done &  will give almost 0.5 C jump on each instance

4) Executing dhrystone will give 3-4 C jump(runs through the benchmark: 800000000)

5) Now the current temperature is around 46.0 C and there is no change in cooling stats on device0 and device 1

6) Now change the passive trip temperature to 42 C, At this time CPUFreq started kicking in trying to limit the temperature, which you can see through the cooling stats on device0 and device1. You can see the system trying to maintain the temperature around 42 C.

7)  Without changing the load, Now change  the passive trip temperature to 100 C, the temperature rises back to 46 C again.

logs
----
2)
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
36500
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/cdev0/stats/trans_table
 From  :    To
       : state 0  state 1  state 2
state 0:       0        0        0
state 1:       0        0        0
state 2:       0        0        0
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/cdev1/stats/trans_table
 From  :    To
       : state 0  state 1  state 2
state 0:       0        0        0
state 1:       0        0        0
state 2:       0        0        0
3)
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
38500
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
39000
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
40000
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
38500
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
40500
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
41000
root@hihope-rz-g2m:~#  cat /sys/class/thermal/thermal_zone2/temp
41500
root@hihope-rz-g2m:~#  cat /sys/class/thermal/thermal_zone2/temp
41500
4)
root@hihope-rz-g2m:~#  cat /sys/class/thermal/thermal_zone2/temp
44500
5)
root@hihope-rz-g2m:~#  cat /sys/class/thermal/thermal_zone2/temp
46000
root@hihope-rz-g2m:~#  cat /sys/class/thermal/thermal_zone2/temp
46500
root@hihope-rz-g2m:~#  cat /sys/class/thermal/thermal_zone2/temp
46500
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/cdev1/stats/trans_table
 From  :    To
       : state 0  state 1  state 2
state 0:       0        0        0
state 1:       0        0        0
state 2:       0        0        0
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/cdev1/stats/trans_table
 From  :    To
       : state 0  state 1  state 2
state 0:       0        0        0
state 1:       0        0        0
state 2:       0        0        0

6)
root@hihope-rz-g2m:~# echo 42000 > /sys/class/thermal/thermal_zone2/trip_point_0_temp
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
43000
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
43000
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
42500
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
43000
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
43000
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
42500
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
43000
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
42500
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
43000
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/cdev1/stats/trans_table
 From  :    To
       : state 0  state 1  state 2
state 0:       0        1        0
state 1:       0        0        1
state 2:       0        0        0
root@hihope-rz-g2m:~#  cat /sys/class/thermal/thermal_zone2/cdev0/stats/trans_table
 From  :    To
       : state 0  state 1  state 2
state 0:       0        1        0
state 1:       0        0        1
state 2:       0        0        0
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
41500
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
41500
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
42000
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
42000
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
42000
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
42000
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
42000
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
42000
root@hihope-rz-g2m:~#  cat /sys/class/thermal/thermal_zone2/cdev0/stats/trans_table
 From  :    To
       : state 0  state 1  state 2
state 0:       0        3        0
state 1:       2        0       50
state 2:       0       49        0
root@hihope-rz-g2m:~#  cat /sys/class/thermal/thermal_zone2/cdev1/stats/trans_table
 From  :    To
       : state 0  state 1  state 2
state 0:       0        3        0
state 1:       2        0       52
state 2:       0       51        0
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
42000
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
42000
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
42000
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
42000
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
42000
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
42000
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
41500
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
42000
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
42000
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
42500
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
42000
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
41500
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
41500
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
42000
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
42000
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
41500

7)
root@hihope-rz-g2m:~# echo 100000 > /sys/class/thermal/thermal_zone2/trip_point_0_temp
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
45000
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
45500
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
44500
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
46000
root@hihope-rz-g2m:~# cat /sys/class/thermal/thermal_zone2/temp
45500
root@hihope-rz-g2m:~#

Biju Das (4):
  arm64: dts: renesas: r8a774a1: Add CPU topology on r8a774a1 SoC
  arm64: dts: renesas: r8a774a1: Add CPU capacity-dmips-mhz
  arm64: dts: renesas: r8a774a1: Create thermal zone to support IPA
  arm64: dts: renesas: r8a774a1: Add dynamic power coefficient

 arch/arm64/boot/dts/renesas/r8a774a1.dtsi | 59 ++++++++++++++++++++++++++++++-
 1 file changed, 58 insertions(+), 1 deletion(-)

Comments

Simon Horman June 17, 2019, 8:27 a.m. UTC | #1
+ Niklas

On Wed, Jun 12, 2019 at 03:20:51PM +0100, Biju Das wrote:
> This series aims to enhance thermal support by adding cpu-map,
> capacity-dmips-mhz,thermal zone to support IPA and also adding 
> dynamic power coefficients.
> 
> For CPU capacity-dmips-mhz calculation
> -------------------------------------
> dhrystone cross complied using the command [1].
> [1] $CC -O3 -DTIME -fno-inline -fno-builtin-printf -Wno-implicit -march=armv8-a dhry_1.c dhry_2.c -o exe-dry
> 
> dhrystone is executed(with a loop value of 80000000) and took the average value for 5 iterations
> of CA57 and CA53.
> 
> IPA testing
> ----------
> 
> 1)Enable THERMAL_WRITABLE_TRIPS and THERMAL_STATISTICS in kernel
> 
> 2) Check the current  temperature(36.5 C) and check the cooling stats on device0 and device 1
> 
> Execute the below applications on an ssh session
> 
> 3) while true; do touch pic-`date +%s`.jpg;done &  will give almost 0.5 C jump on each instance
> 
> 4) Executing dhrystone will give 3-4 C jump(runs through the benchmark: 800000000)
> 
> 5) Now the current temperature is around 46.0 C and there is no change in cooling stats on device0 and device 1
> 
> 6) Now change the passive trip temperature to 42 C, At this time CPUFreq started kicking in trying to limit the temperature, which you can see through the cooling stats on device0 and device1. You can see the system trying to maintain the temperature around 42 C.
> 
> 7)  Without changing the load, Now change  the passive trip temperature to 100 C, the temperature rises back to 46 C again.

...

Thanks,

This looks fine to me but I will wait to see if there are other reviews
before applying.

Reviewed-by: Simon Horman <horms+renesas@verge.net.au>
Simon Horman June 18, 2019, 10:42 a.m. UTC | #2
On Mon, Jun 17, 2019 at 10:27:03AM +0200, Simon Horman wrote:
> + Niklas
> 
> On Wed, Jun 12, 2019 at 03:20:51PM +0100, Biju Das wrote:
> > This series aims to enhance thermal support by adding cpu-map,
> > capacity-dmips-mhz,thermal zone to support IPA and also adding 
> > dynamic power coefficients.
> > 
> > For CPU capacity-dmips-mhz calculation
> > -------------------------------------
> > dhrystone cross complied using the command [1].
> > [1] $CC -O3 -DTIME -fno-inline -fno-builtin-printf -Wno-implicit -march=armv8-a dhry_1.c dhry_2.c -o exe-dry
> > 
> > dhrystone is executed(with a loop value of 80000000) and took the average value for 5 iterations
> > of CA57 and CA53.
> > 
> > IPA testing
> > ----------
> > 
> > 1)Enable THERMAL_WRITABLE_TRIPS and THERMAL_STATISTICS in kernel
> > 
> > 2) Check the current  temperature(36.5 C) and check the cooling stats on device0 and device 1
> > 
> > Execute the below applications on an ssh session
> > 
> > 3) while true; do touch pic-`date +%s`.jpg;done &  will give almost 0.5 C jump on each instance
> > 
> > 4) Executing dhrystone will give 3-4 C jump(runs through the benchmark: 800000000)
> > 
> > 5) Now the current temperature is around 46.0 C and there is no change in cooling stats on device0 and device 1
> > 
> > 6) Now change the passive trip temperature to 42 C, At this time CPUFreq started kicking in trying to limit the temperature, which you can see through the cooling stats on device0 and device1. You can see the system trying to maintain the temperature around 42 C.
> > 
> > 7)  Without changing the load, Now change  the passive trip temperature to 100 C, the temperature rises back to 46 C again.
> 
> ...
> 
> Thanks,
> 
> This looks fine to me but I will wait to see if there are other reviews
> before applying.

Thanks again,

I have applied this series for inclusion in v5.3.