ARM: dts: exynos: Add dynamic-power-coefficient to Exynos5422 CPUs
authorLukasz Luba <lukasz.luba@arm.com>
Thu, 20 Feb 2020 09:56:35 +0000 (09:56 +0000)
committerKrzysztof Kozlowski <krzk@kernel.org>
Thu, 20 Feb 2020 17:56:05 +0000 (18:56 +0100)
To use Energy Aware Scheduler (EAS) the Energy Model (EM) should be
registered for CPUs. Add dynamic-power-coefficient into CPU nodes which
let CPUFreq subsystem register the EM structures. This will increase
energy efficiency of big.LITTLE platforms.

The 'dynamic-power-coefficient' values have been obtained experimenting
with different workloads. The power measurements taken from big CPU
Cluster and LITTLE CPU Cluster has been compared with official documents
and synthetic workloads estimations. The effective power ratio between
Cortex-A7 and Cortex-A15 CPUs (~3x) is also aligned with documentation.

Signed-off-by: Lukasz Luba <lukasz.luba@arm.com>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
arch/arm/boot/dts/exynos5422-cpus.dtsi

index 1b8605c..4b641b9 100644 (file)
@@ -31,6 +31,7 @@
                        operating-points-v2 = <&cluster_a7_opp_table>;
                        #cooling-cells = <2>; /* min followed by max */
                        capacity-dmips-mhz = <539>;
+                       dynamic-power-coefficient = <90>;
                };
 
                cpu1: cpu@101 {
@@ -43,6 +44,7 @@
                        operating-points-v2 = <&cluster_a7_opp_table>;
                        #cooling-cells = <2>; /* min followed by max */
                        capacity-dmips-mhz = <539>;
+                       dynamic-power-coefficient = <90>;
                };
 
                cpu2: cpu@102 {
@@ -55,6 +57,7 @@
                        operating-points-v2 = <&cluster_a7_opp_table>;
                        #cooling-cells = <2>; /* min followed by max */
                        capacity-dmips-mhz = <539>;
+                       dynamic-power-coefficient = <90>;
                };
 
                cpu3: cpu@103 {
@@ -67,6 +70,7 @@
                        operating-points-v2 = <&cluster_a7_opp_table>;
                        #cooling-cells = <2>; /* min followed by max */
                        capacity-dmips-mhz = <539>;
+                       dynamic-power-coefficient = <90>;
                };
 
                cpu4: cpu@0 {
@@ -79,6 +83,7 @@
                        operating-points-v2 = <&cluster_a15_opp_table>;
                        #cooling-cells = <2>; /* min followed by max */
                        capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <310>;
                };
 
                cpu5: cpu@1 {
@@ -91,6 +96,7 @@
                        operating-points-v2 = <&cluster_a15_opp_table>;
                        #cooling-cells = <2>; /* min followed by max */
                        capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <310>;
                };
 
                cpu6: cpu@2 {
                        operating-points-v2 = <&cluster_a15_opp_table>;
                        #cooling-cells = <2>; /* min followed by max */
                        capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <310>;
                };
 
                cpu7: cpu@3 {
                        operating-points-v2 = <&cluster_a15_opp_table>;
                        #cooling-cells = <2>; /* min followed by max */
                        capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <310>;
                };
        };
 };